Skip to content
koriroys edited this page Feb 21, 2013 · 5 revisions

Sidekiq allows you to schedule the time when a job will be executed. You use perform_in(interval, *args) or perform_at(timestamp, *args) rather than the standard perform_async(*args):

MyWorker.perform_in(3.hours, 'mike', 1)
MyWorker.perform_at(3.hours.from_now, 'mike', 1)

This is useful for example if you want to send the user an email 5 days after they sign up.

For recurring tasks, I recommend using the clockwork or whenever gems.

Checking for New Jobs

Sidekiq checks for scheduled jobs every 15 seconds by default. You can adjust this interval:

Sidekiq.configure_server do |config|
  config.poll_interval = 15
end
Clone this wiki locally