delayed_job_recurring_mongoid
Extends delayed_job to support recurring jobs.
Usage
This is copy project from https://github.com/amitree/delayed_job_recurring and make it compatible with mongoid.
Add it to your Gemfile:
gem 'delayed_job_recurring_mongoid'Then define a task class. We like the concept of
interactors,
so we put our task classes in app/interactors. You could also put them in lib or even app/models.
require 'delayed_job_recurring'
class MyTask
include Delayed::RecurringJob
run_every 1.day
run_at '11:00am'
timezone 'US/Pacific'
queue 'slow-jobs'
def perform
# Do some work here!
end
endAnd schedule it. In a rails app, you might put this in an initializer:
MyTask.schedule! # run every day at 11am Pacific time (accounting for daylight savings)Advanced usage
Passing options to schedule
MyTask.schedule(run_at: '12:00')Running at multiples times each day
MyTask.schedule(run_every: 1.day, run_at: ['11:00', '6:00pm']Running on specific days of the week
MyTask.schedule(run_every: 1.week, run_at: ['sunday 8:00am', 'wednesday 8:00am'])Thanks!
Many thanks to @ginjo and @kares for their work! This code was derived from https://gist.github.com/ginjo/3688965.