Lightweight job scheduler extension for Sidekiq
Fork me on GitHub

Why Sidekiq Scheduler

SidekiqScheduler is an extension to sidekiq that allows you to schedule jobs to run at a given time or at certain intervals, e.g. every day at 8 pm. You can use cron syntax or “every: X day” syntax.

Install

~gem install sidekiq-scheduler
or
  • Gemfile
  1. source 'http://rubygems.org'
  2. gem 'sidekiq-scheduler', '~> 1'

Using

  • hello-scheduler.rb
  1. require 'sidekiq-scheduler'
  2. class HelloWorld
  3. include Sidekiq::Worker
  4. def perform
  5. puts 'Hello world!'
  6. end
  7. end
  • config/sidekiq.yml
  1. :schedule:
  2. hello_world:
  3. every: 1m # Runs once per minute
  4. class: HelloWorld
~sidekiq -r ./hello-scheduler.rb
Booting Sidekiq 4.2.10 with redis options {:url=>nil}

Scheduling hello_world {"every"=>"1m", "class"=>"HelloWorld", "queue"=>"default"}

Starting processing, hit Ctrl-C to stop
queueing HelloWorld (hello_world)
HelloWorld ... start

Hello world!

HelloWorld ... done: 0.001 sec