1. step
gem "redis", "~> 4.0"
gem 'sidekiq_alive'
gem 'sidekiq', '~> 6.1.0'
gem "sidekiq-cron"
2. step
Add file in : config/schedule.yml
my_first_job:
cron: "*/1 * * * *"
class: "WorkerName(FirstWorker
)"
3. step
Add file in : config/initializers/sidekiq.rb
schedule_file = "config/schedule.yml"
if File.exist?(schedule_file) && Sidekiq.server?
Sidekiq::Cron::Job.load_from_hash YAML.load_file(schedule_file)
end
4. step
Add workers
class FirstWorker
include Sidekiq::Worker
def perform(*args)
Zzzzzz.first.update(name: "aaaaa")
end
end
5. Step
Add routes:
require 'sidekiq/web'
require 'sidekiq/cron/web'
mount Sidekiq::Web, at: '/sidekiq'
6.step
Start sidekiq from the root of your Rails application so the jobs will be processed:
Run: bundle exec sidekiq
Then check on browse: localhost:3000/sidekiq
Manually Worker call with time schedule
FirstWorker.perform_at(5.minutes.from_now)