Luajit2进程之间的通信?

我可以很容易地在同一台机器上启动两个或更多个独立的Lua程序(在LuaJIT2上运行)。但是有没有办法让这些程序进行通信?

我能想到的最好的解决方案是,每个程序可以写一个文本文件,而其他程序可以读取。但这是非常慢的解决方案(即使文本文件保存在虚拟RAM磁盘上)。

我知道有zeromq和其他可以帮助解决这个问题的东西…问题是,指示太长,太复杂/令人困惑(至少对我来说是这样)。

有什么建议吗?特别是一些_工作_的代码示例将不胜感激,无论多么简单。甚至如何将一个LuaJIT2进程的变量值传递给另一个进程。

(我正在使用Windows XP SP3,如果有关系...)

点赞
用户752976
用户752976

基本上,你应该要寻找的关键词是 "IPC"(进程间通信)。

以下是一些你可能想要探索的选项:

  • 共享文件
  • 共享内存
  • 网络套接字
  • 管道(在 POSIX 系统上)
  • 使用其中一种的中间件

我不能真正说哪一个是最好的。选择将取决于其他因素(需要的速度,延迟,你想通信什么),你没有提供。我只希望我指出了你正确的方向。

此外,如果 ZeroMQ 太复杂了,我强烈建议你多阅读一些,而不是寻找更简单的代码示例。Lua 是一门 "自己动手" 的语言。

如果你不是真正执着于 Lua,可以看看 PyRo(Python 远程对象)。或者,你可能想要自己实现类似的东西。

2012-08-11 14:53:19