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:
- Sidekiq ::状态gem
- 批处理API(Sidekiq Pro) – 使用