1

我正在寻找具有以下能力的良好背景工作处理器,

  1. 适用于 MySql
  2. 可以有优先级
  3. 可以在后台轻松安排任何事情(不仅仅是电子邮件)
  4. 能够在完成后重新初始化作业(回调会很好。我很少有任务/作业在每分钟后继续运行),即使是重复性调度程序也可以工作
  5. 不应该吃掉很多内存,(有DJ这个经验)

我正在研究 Resque、DJ、Beanstalkd 的几个选项(尚未完全探索)我在 Amazon EC2 中有我的生产环境(如果这有助于更好的解决方案)

请建议我这是一个不错的选择,除了现在人们使用的这些之外还有其他东西吗?

4

1 回答 1

4

我衷心推荐sidekiq——它非常灵活,而且它使用的资源比Resque 或DelayedJob 少得多。

它确实需要 redis(如 Resque),但 redis 对任何 Rails 项目都是有价值的补充,因为它可以用作会话存储和缓存。我们的主要数据库是 MySQL,我们部署到 EC2 :-) 我们过去曾使用延迟作业和救援,但发现它们存在问题并且占用大量资源。Sidekiq 使用线程,单个 sidekiq 工作人员与多个 DJ/Resque 工作人员一样高效。这是我可以证实的项目 README 中一个有趣的部分:

您会发现您可能需要 50 个 200MB resque 进程来固定您的 CPU,而一个 300MB Sidekiq 进程将固定相同的 CPU 并执行相同数量的工作。请参阅我关于 Resque 的内存效率的博客文章,以及我如何能够将 Carbon Five 客户的 resque 处理场从 9 台机器缩小到 1 台机器。

总结一下:

  1. 它适用于 MySQL - 不是真的,但它也没有 MySQL 的问题
  2. 您可以通过设置不同的处理队列来确定优先级
  3. 您可以轻松安排任何事情(特别是对电子邮件的特殊 ala DJ 支持)
  4. 不太确定,我们使用when + cron 进行重复性工作
  5. 你会喜欢 Sidekiq 的小内存占用
于 2012-10-10T07:17:18.287 回答