Mq Lua |
|
因此,这个程序可以使用“node”模块创建“节点”。节点是独立的 Lua 状态,运行在自己的线程中。节点可以使用 0MQ (zeromq) 消息队列进行通信。Lua 状态真正地并行运行,并利用所有可用的 CPU 核心。这与 Lua 协程无关(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