Mq Lua

lua-users home
Wiki

mqlua 是執行 Lua 程式碼的「不同」方法。它結合了三個現有技術:Lua、POSIX 執行緒和 0MQ(zeromq.orq)。它會作為一個名為「mqlua」的二進位檔,以 Lua 程式的檔名作為引數。這個 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


最新異動 · 喜好設定
編輯 · 歷史
最後編輯於 2020 年 1 月 31 日 上午 10:36 GMT (差異)