每 10 秒安排一次作业 - ruby

Sha*_* M. 5 ruby cron ruby-on-rails scheduler sidekiq

我需要一个每 10 秒运行一次的调度程序机制。我使用sidekiq,这就是为什么我想使用sidekiq-cron,但最小的时间单位是一分钟。此外,我一次只需要运行一个作业实例。

对于这种情况,最佳做法是什么?

顺便说一句,我们使用 Rails 4.2、Ruby 2.1.2、Unicorn 作为 Web 服务器和 Sidekiq 3。

谢谢

编辑: 我需要它每 10 秒运行一次

Sta*_*hin -3

Sidekiq有调度方法: https://github.com/mperham/sidekiq/wiki/Scheduled-Jobs

所以你可以做

MyWorker.perform_in(10.seconds)
Run Code Online (Sandbox Code Playgroud)

  • @jeffdill2:依靠工作人员以这种方式调用自身是脆弱的。例如,很容易导致根本没有工作人员运行,或者由于尝试停止/启动失败而导致多个“链”同时运行。 (3认同)
  • 他可以在 MyWorker 中递归调用它,每 10 秒运行一次。 (2认同)