在哪里初始化sidekiq调度器的schedule.yml文件



我有一个config/schedule.yml文件,其中包含我的应用程序中定期作业的cron。但我不确定在哪里/如何初始化该文件?在Resque中,我们曾在Resque.rake文件中对其进行初始化。

Sidekiq并不是为重复性作业而设计的。引用sidekiq github维基页面:

对于重复性任务,我建议使用与系统的cron集成的clockwork或when-gem来调度任务。

我没有使用sidekiq(但使用了其他类似的工具,如delayed_job和rufus_scheduler等纯ruby调度器),但非基于cron的工具的一个主要问题是确保重复执行的作业将实际执行,并且只执行您想要的次数。在一个典型的有乘客的生产环境中,很容易发生所有ruby进程停止(因此根本没有执行)或二十个进程都试图执行同一作业的情况。

长期以来,我们一直在转向写重复作业很有趣的时间,它可以解决将cronjobs添加到系统中的所有麻烦。

如果您真的想要一个更简单的解决方案,并且不需要可靠的执行,rufus_scheduler是一个选项

2018年末,Sidekiq提供了类似cron(也称为"周期性")的作业调度选项。

最简单的选择是为Sidekiq Enterprise付费,后者为该功能提供官方支持。一个更便宜的选择是安装https://github.com/ondrejbartas/sidekiq-cron它(作为写作)得到了积极维护,下载量超过400万。

最新更新