我们有一个Rails应用程序,它与iOS和Web客户端连接。目前,我们使用Open3从Rails控制器生成子进程,以检索并将数据发送到聊天服务器,该服务器使用MongoDB运行node.js。但是,经过几天的生产,我们发现子进程使我们的Rails应用程序非常慢并且大大增加了CPU使用率。
我们知道长期解决方案是使用REST API框架(例如Express)包装聊天服务器。但是从短期来看,我们想要快速解决如何使我们的子进程更快地执行(产生,执行等)。
有什么想法吗?
答案 0 :(得分:1)
这是一个非常常见的问题(在后台发送消息),但您的解决方案效率不高。流程管理很难。因此,通常,您希望拥有后台作业处理器或某种消息队列。 Zeromq,redis,延迟工作等等......当然,做REST API框架是可取的,但它不是唯一的解决方案。以下是一些需要考虑的选项:
对于超级速度,你可以使用类似的东西:
对于一般后台工作处理: