【问题标题】:Communicating between a running Ruby and Java program [closed]在运行的 Ruby 和 Java 程序之间进行通信 [关闭]
【发布时间】:2013-05-15 08:45:09
【问题描述】:

我想一直运行一个 Java 程序和一个 Ruby 程序,如果需要的话,我希望两者都能相互通信,而不需要一个程序在每次需要时调用另一个程序(就像 JRuby 所做的一样我可以弄清楚)。

我需要 HTTP 请求之类的东西,我可以使用 Ruby 脚本传递的参数调用 Java 程序中的方法。


具体情况如下:我的服务器上运行着一个Siri-Proxy。当我的插件识别某些指定的命令时,它必须与一些用 Java 编写的中间件进行通信(需要传递给中间件的是房间、要处理的元素和要执行的操作)。

这样,中间件将能够处理请求,并且可以模块化处理更多操作,例如将参数写入数据库或与某些家庭控制软件交互。

【问题讨论】:

  • 我认为这个问题对于 Stack Overflow 来说太宽泛了。有很多方法可以做到这一点。
  • 命名一些会很有帮助(我还具体提到了 HTTP 请求,所以这将是一个很好的帮助建议的钩子..)
  • 如果您还不了解各种 IPC 协议,我很确定您还没有准备好写一些东西,因为您不知道如何选择适合您需要的协议.而且,您还没有向我们提供任何有用的信息,以便我们真正做出好的推荐。我想说的是,你应该看看 Java 和 Ruby 支持的 SOAP 或 REST。

标签: java ruby request siri bridge


【解决方案1】:

我不确定您到底要什么,但 Inter-process communication (IPC) 与 already stated 一样是一个非常广泛的领域。

可能的解决方案包括从简单的共享文件写入/读取、通过套接字和嵌入式网络服务器到消息队列中间件。根据您的情况,一个单独的 AMQP 或 Redis 服务器处理通信可能是矫枉过正。另一方面,如果不仔细进行文件交换,则很容易出错。

您还可以easily 在您的 Ruby 程序中实现 HTTP 服务器,Java 应用程序向该服务器提交请求以建立单向通信。

如果您需要更准确的答案,请同时提供更多信息。您的目标究竟是什么?性能有问题吗?它应该只是为了测试目的吗?您要传输什么样的数据?

【讨论】:

  • IPC 已经是一个很好的开头词了,谢谢! :) 顺便提一句。我在我的问题中描述了我的具体用例。
猜你喜欢
  • 1970-01-01
  • 2019-12-16
  • 2011-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多