Mq Lua |
|
因此,该程序可以使用“node”模块创建“节点”。节点是在其自身线程中运行的独立 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