我有一个 config/schedule.yml 文件,其中包含用于在我的应用程序中重复作业的 cron。但我不确定在哪里/如何初始化该文件?在 Resque 中,我们曾经在 resque.rake 文件中对其进行初始化。
问问题
3023 次
2 回答
3
Sidekiq 并不是真正为重复性工作而设计的。引用sidekiq github wiki 页面:
对于重复性任务,我建议使用与系统的 cron 集成的发条或任何时候的 gem 来安排任务。
我没有使用过sidekiq(但其他类似的工具,如delayed_job 和纯ruby 调度程序,如rufus_scheduler),但非基于cron 的工具的一个主要问题是保证重复作业将实际执行,并且只执行您想要的次数。在有乘客的典型生产环境中,很容易发生所有 ruby 进程停止(因此根本不执行)或 20 个进程都试图执行相同的作业。
我们长期以来一直切换到编写重复性工作很有趣的地方,并且可以解决在您的系统中添加 cronjobs 的所有麻烦。
如果你真的想要一个更简单的解决方案并且不需要可靠的执行rufus_scheduler是一个选项
于 2012-08-29T13:15:16.357 回答
2
在 2018 年末,Sidekiq 提供了类似 cron(又名“定期”)作业调度的选项。
最简单的选择是购买 Sidekiq Enterprise,它为此功能提供官方支持。更便宜的选择是安装https://github.com/ondrejbartas/sidekiq-cron,它(如写作)得到积极维护,下载量超过 400 万次。
于 2018-12-20T23:14:23.620 回答