module ScheduledJob
Constants
- VERSION
Attributes
config[W]
Public Class Methods
config()
click to toggle source
# File lib/scheduled_job.rb, line 13 def config @config ||= Config.new end
configure() { |config| ... }
click to toggle source
# File lib/scheduled_job.rb, line 32 def self.configure yield(config) validate_job_hash(config.jobs) if config.jobs end
included(base)
click to toggle source
# File lib/scheduled_job.rb, line 53 def self.included(base) base.extend ScheduledJobClassMethods end
logger()
click to toggle source
# File lib/scheduled_job.rb, line 28 def self.logger self.config.logger end
reschedule()
click to toggle source
# File lib/scheduled_job.rb, line 18 def self.reschedule config.jobs.each do |job, options| options[:count].times do job = job.to_s if job.is_a?(Symbol) job = job.constantize if job.is_a?(String) job.schedule_job end end if config.jobs end
validate_job_hash(jobs)
click to toggle source
# File lib/scheduled_job.rb, line 37 def self.validate_job_hash(jobs) jobs.each do |klass, options| raise ConfigError.new("Jobs config found invalid class: #{klass}") unless klass.is_a?(Class) || klass.is_a?(Symbol) || klass.is_a?(String) raise ConfigError.new("Jobs config found invalid job count: #{options[:count]}") unless options[:count].to_i >= 0 end end
Public Instance Methods
before(job)
click to toggle source
# File lib/scheduled_job.rb, line 57 def before(job) callback = ScheduledJob.config.before_callback callback.call(job, self) if callback end
error(job, exception)
click to toggle source
# File lib/scheduled_job.rb, line 75 def error(job, exception) ScheduledJob.logger.warn("DelayedJob error: Job: #{job.id}, in queue #{self.class.queue_name}, exception: #{exception}") self.class.schedule_job end
failure(job)
click to toggle source
# File lib/scheduled_job.rb, line 69 def failure(job) ScheduledJob.logger.error("DelayedJob failed: processing job in queue #{self.class.queue_name} failed") job.update_attributes!(:failed_at => Time.now.utc) self.class.schedule_job end
success(job)
click to toggle source
# File lib/scheduled_job.rb, line 62 def success(job) callback = ScheduledJob.config.success_callback callback.call(job, self) if callback GC.start self.class.schedule_job(job) end