如何尽快在Ruby中执行子进程?

时间:2015-10-23 21:54:49

标签: ruby-on-rails ruby popen3

我们有一个Rails应用程序,它与iOS和Web客户端连接。目前,我们使用Open3从Rails控制器生成子进程,以检索并将数据发送到聊天服务器,该服务器使用MongoDB运行node.js。但是,经过几天的生产,我们发现子进程使我们的Rails应用程序非常慢并且大大增加了CPU使用率。

我们知道长期解决方案是使用REST API框架(例如Express)包装聊天服务器。但是从短期来看,我们想要快速解决如何使我们的子进程更快地执行(产生,执行等)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是一个非常常见的问题(在后台发送消息),但您的解决方案效率不高。流程管理很难。因此,通常,您希望拥有后台作业处理器或某种消息队列。 Zeromq,redis,延迟工作等等......当然,做REST API框架是可取的,但它不是唯一的解决方案。以下是一些需要考虑的选项:

对于超级速度,你可以使用类似的东西:

http://zeromq.org/

对于一般后台工作处理:

https://www.ruby-toolbox.com/categories/Background_Jobs

相关问题