Resque vs Sidekiq?

我目前使用Resque作为我的后台进程,但是最近我听到了很多关于sidekiq的huff-buff。 任何人都可以比较/区分吗?

特别是我想知道是否有一种方法来监视程序是否在sidekiq完成一项工作

Resque:

优点:

  • 不需要线程安全(与几乎所有的gem一起工作);
  • 没有解释器的偏好(你可以使用任何ruby);
    Resque目前支持MRI 1.9.3或更高版本
  • 插件的负载。

缺点

  • 每个工作人员运行一个进程(使用更多的内存);
  • 不重试作业(开箱即用)。

Sidekiq:

优点

  • 每个工作者运行线程(使用更less的内存);
  • (更快的工作);
  • 更多的select开箱即用。

缺点

  • [巨大]需要线程安全的代码和所有的依赖 。 如果你使用线程运行线程不安全的代码,那么你就要麻烦了;
  • 在某些ruby上比其他ruby更好(build议使用jruby,由于GVL(全局虚拟机locking),MRI的效率会降低)。

Ryan本周为Sideki创造了一个networking直播,其中还包括与Resque的一些比较。 你可能想检查一下:

url: http : //railscasts.com/episodes/366-sidekiq

从这个问题来看:

特别是我想知道是否有一种方法来监视程序是否在sidekiq完成一项工作

这是一个解决scheme:

  1. Sidekiq ::状态gem
  2. 批处理API(Sidekiq Pro) – 使用