6

我有几个当前作为 rake 任务运行的进程。我可以以某种方式使用 Sidekiq 在连续循环中执行流程吗?这是 Sidekiq 的最佳实践吗?

尽管这些进程现在在各自的 rake 任务中以连续循环在后台运行,但偶尔会失败。然后我必须重新启动 rake 任务。

在 SO 社区的帮助下,我正在尝试几种选择。一是弄清楚如何使用monit. 但这意味着每个进程都必须有自己的环境,从而增加服务器负载。由于我在虚拟化环境中运行,因此我想尽可能消除这种情况。

另一种选择只是利用我已经拥有的 Sidekiq 选项。我现在使用 Sidekiq 进行后台处理,但它总是一次性的。有什么方法可以让我在 Sidekiq 中有一个连续的过程吗?并且还会收到失败通知并自动重新启动进程?

4

2 回答 2

2

Sidekiq 的作者 Mike Perham 的答案是使用cron作业来完成这样的计划任务。您可以创建一个rake提交作业以Sidekiq在后台运行的任务。然后创建一个cron作业来安排它。

于 2014-01-31T15:13:19.413 回答
1

我不知道你为什么选择sideki,这个项目是特定的吗?以前我遇到过同样的问题,但我迁移到了delayed_job,它满足了我的需求。如果活动记录对象是事务性的,请使用delayed_job,否则请使用resque,这也是一个不错的选择。

于 2014-01-31T08:26:07.133 回答