Gem 推送服务器的后台任务选择 resque 或 sidekiq

mobiwolf · 2012年11月25日 · 最后由 vkill 回复于 2012年11月25日 · 8675 次阅读

resque sidekiq 这两个用哪个方便呢?

在后台任务上,两个好像是兼容一样的。

但是前者好像不能解决大量的数据来了的情况,后者可以通过消息的方式来一个一个的处理数据。

是这样的吗?

API 不太一样。一开始我们用 resque 后来改 sidekiq。resque 比较有历史,所以第三方插件齐全的多,问题是每一个 worker 都是自己的进程所以内存耗比较多。

sidekiq 的 workers 是 thread, 要小心 thread-safety 的问题。我们有一个第三方的 gem 不是 thread-safe。

目前使用 resque,支持都比较齐全,暂时来看没什么大问题

@hayeah 我现在也用 sidekiq 了,但是好像不运行 worker 中的 perform,不知道是为什么啊。

sidekiq 自带了 capistrano 比较方便

@vkill 如果 worker 中执行的不是线程安全的代码,那么会出错吗?

我现在里面的代码好像不执行,但是我在 perform 中打印 put 是可以的。想问问是不是这个原因导致的

可以看看 log 里面有提示没?默认是 log/sidekiq.log

@vkill log 目录下没有,我该怎么设置 sidekiq 的 log 位置呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号