使用Sidekiq安排后台任务

Ann*_*nie 4 cron ruby-on-rails-3 sidekiq

我有部署heroku的Rails 3应用程序.我有一名Sidekiq工人app/workers/task_worker.rb:

class TaskWorker
  include Sidekiq::Worker
  def perform
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

如何TaskWorker.perform_async在凌晨12:01 安排每日执行?

The*_*uck 5

你可能也想看看sidetiq.https://github.com/tobiassvn/sidetiq gem通过gem支持复杂的计时表达式ice_cube.

我个人觉得很舒服,有一个宝石可以与sidekiq无缝融合.

这样的东西应该工作:

class TaskWorker
  include Sidekiq::Worker
  include Sidetiq::Schedulable

  recurrence do
    daily.hour_of_day(0).minute_of_hour(1)
  end

  def perform
    # do magic
  end
end
Run Code Online (Sandbox Code Playgroud)

但是在使用这个gem时要小心,因为某些时间表达式存在一些与性能相关的问题.https://github.com/tobiassvn/sidetiq/wiki/Known-Issues.我给你的表达应该绕过这个问题.


Hen*_*hiu -3

我说的是显而易见的事情,但是每天晚上都有一个 Cron 作业调用 Sidekiq 作业有什么问题呢?