【问题标题】:Using Thread.new vs a Background Worker like Resque in a Rails App在 Rails 应用程序中使用 Thread.new 与 Resque 等后台 Worker
【发布时间】:2012-12-21 14:09:55
【问题描述】:

对于像邮寄和发布到外部网站这样的长时间运行的进程,是否可以使用 Ruby Thread.new 代替像 Delayed Jobs 或 Resque 这样的后台工作?

【问题讨论】:

    标签: ruby-on-rails ruby delayed-job resque


    【解决方案1】:

    这取决于你所说的 OK。 Ruby 有一个全局解释器锁(大多数实现都这样做 - JRuby 是一个例外),这意味着您不会使用 Thread.new 方法获得真正的并发性。这并不意味着您根本没有获得任何并发性。这在多个地方进行了更深入的讨论:

    Delayed Jobs 和 Resque 方法都涉及让一个或多个单独的进程执行长时间运行的操作。对于多个进程,您的 rails 应用程序和后台工作进程之间将具有真正的并发性,因为 GIL 根本不会妨碍您。

    【讨论】:

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