Mq Lua |
|
因此,這個程式可以使用「節點」模組來建立「節點」。節點是在其自身執行緒中執行的獨立 Lua 狀態。節點可以使用 0MQ(zeromq)訊息佇列進行通訊。Lua 狀態真正平行執行,並使用所有可用的 CPU 核心。這與 Lua 協程無關(每個 Lua 狀態仍可以使用協程)。
節點可以使用 zeromq 訊息佇列,在同一個處理程序中的執行緒、同一台機器上的處理程序或不同機器上的處理程序之間進行通訊。Lua 節點允許使用一種簡單的語言 Lua 進行完整的分散式/平行處理。
使用 node.create() 可建立一個新的節點(也就是在自己的執行緒中執行的 Lua 狀態)
local n = node.create('worker.lua', 'bee', 42)
這將建立一個擁有新 Lua 狀態的新執行緒,執行在「worker.lua」檔案中找到的區塊,並以「...」將引數「bee」和 42 傳遞給 worker.lua。
節點可以使用「zmq」模組彼此通訊。因此,可以執行多個獨立的 Lua 執行緒於一個處理程序中,並讓它們彼此通訊或與同一台機器上不同處理程序的節點通訊,或與在遠端機器上執行的節點通訊。
原始碼在 https://github.com/arcapos/mqlua
請注意,建立 mqlua 也需要 luazmq 模組,可在 https://github.com/arcapos/luazmq 找到
作者:MarcBalmer