0

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

我们知道长期的解决方案是使用 REST API 框架(例如 Express)来包装我们的聊天服务器。但在短期内,我们希望快速解决如何使我们的子流程执行得更快(生成、执行等)。

有任何想法吗?

4

1 回答 1

1

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

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

http://zeromq.org/

对于一般后台作业处理:

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

于 2015-10-23T22:26:48.780 回答