【问题标题】:How to execute subprocesses in Ruby as fast as possible?如何在 Ruby 中尽可能快地执行子进程?
【发布时间】:2016-01-23 13:23:19
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby popen3


    【解决方案1】:

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

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

    http://zeromq.org/

    对于一般后台作业处理:

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

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 2021-06-03
      相关资源
      最近更新 更多