Ruby 雷斯克对赛德基克?

Ruby 雷斯克对赛德基克?,ruby,ruby-on-rails-3,resque,sidekiq,Ruby,Ruby On Rails 3,Resque,Sidekiq,我目前正在使用Resque进行后台处理,但最近我听到了很多关于sidekiq的恼怒言论。有人能比较/区分吗 特别是,我想知道是否有一种方法可以通过编程监控作业是否在sidekiqResque中完成: 优点: 不需要线程安全(适用于几乎所有的gem) 没有解释器首选项(您可以使用任何ruby) 大量插件 缺点 每个工作进程运行一个进程(使用更多内存) 不重试作业(无论如何,开箱即用) 赛德基克: 专业人士 每个工作线程运行线程(使用更少的内存) 更少的分叉(工作更快) 更多现成的选项

我目前正在使用
Resque
进行后台处理,但最近我听到了很多关于
sidekiq
的恼怒言论。有人能比较/区分吗

特别是,我想知道是否有一种方法可以通过编程监控作业是否在
sidekiq

Resque中完成: 优点:

  • 不需要线程安全(适用于几乎所有的gem)
  • 没有解释器首选项(您可以使用任何ruby)
  • 大量插件
缺点

  • 每个工作进程运行一个进程(使用更多内存)
  • 不重试作业(无论如何,开箱即用)
赛德基克: 专业人士

  • 每个工作线程运行线程(使用更少的内存)
  • 更少的分叉(工作更快)
  • 更多现成的选项
缺点

  • [MARGE]要求代码和所有依赖项的线程安全性。如果你用线程运行线程不安全代码,你是在自找麻烦
  • 对某些红宝石的效果比其他红宝石更好(推荐使用jruby,由于GVL(全局VM锁),MRI的效率会降低)
从问题中:

我特别想知道有没有一种方法可以监控 以编程方式确定作业是否在sidekiq中完成

这里有一个解决方案:

  • 批量API(Sidekiq Pro)-

  • 看到这个问题没有因为“不适合这样做”而被关闭,我非常激动。我们能停止关闭所有好问题吗?请大家。我知道它很广泛,也很重要,也很有趣。有一天,他们会发明一个程序员可以提问的网站,该网站将允许主观回答。可以忽略的问题,甚至可以根据相关性投票。@baash05,它将被称为Quora!它将被称为Yahoo Answers,质量将直线下降。你如何知道你是否正在运行“线程不安全代码”?例如,如果你在全局变量中存储状态,那么你就有麻烦了:)至于gems,这里有一些。@mrbr你错得再错不过了。GVL与ruby代码的线程安全无关。GVL是关于ruby解释器代码(MRI C代码)的线程安全的。我不得不反驳Resque上的“pro”说“你可以使用任何ruby”。《今日Resque自述》实际上说,“我们很想支持非MRI红宝石,但它们可能有bug。”如果您计划使用therubyracer在作业中运行JavaScript,我会特别避免使用Sidekiq。这不是Sidekiq本身的错误,但多线程会给therubyracer带来问题。看见