class Actionable::Recurrence
Public Instance Methods
ensure_scheduled()
click to toggle source
# File lib/actionable/recurrence.rb, line 28 def ensure_scheduled schedule_next unless next_scheduled? end
next_scheduled?()
click to toggle source
# File lib/actionable/recurrence.rb, line 24 def next_scheduled? Actionable::Action.where(:status.in => [:scheduled,:late,:enqueued,:working], target_id: id).exists? end
schedule_next()
click to toggle source
# File lib/actionable/recurrence.rb, line 20 def schedule_next schedule_actionable(next_run_time,job_class,payload) end
Private Instance Methods
job_class()
click to toggle source
# File lib/actionable/recurrence.rb, line 38 def job_class unless read_attribute(:job_class).blank? read_attribute(:job_class).constantize end end
next_run_time()
click to toggle source
# File lib/actionable/recurrence.rb, line 34 def next_run_time Rufus::CronLine.new(recurrence_string).next_time.to_datetime.utc end
valid_job_class()
click to toggle source
# File lib/actionable/recurrence.rb, line 52 def valid_job_class begin job_class rescue => e errors.add(:job_class,e.message) end end
valid_recurrence_string()
click to toggle source
# File lib/actionable/recurrence.rb, line 44 def valid_recurrence_string begin next_run_time rescue => e errors.add(:recurrence_string,e.message) end end