Search code examples
ruby-on-railsdelayed-job

how to run delayed job every week without using whenever?


How to run the delayed job every 7 days that is every week?

Mailers.delay(run_at: 7.days.from_now).send_mail(user)

This will run 7 days from now . I want the same job to be run every week. with out using whenever gem.


Solution

  • Rufus Scheduler is a great gem, all Ruby based (no cron)

    # config/initializer/task_scheduler.rb
    
    require 'rufus-scheduler'
    
    scheduler = Rufus::Scheduler.new
    
    scheduler.every '7d' do
      user = method_to_get_user_object
      Mailers.send_mail(user).deliver
    end