Class: Marty::CronJob
- Inherits:
-
ActiveJob::Base
- Object
- ActiveJob::Base
- Marty::CronJob
- Defined in:
- app/jobs/marty/cron_job.rb
Class Method Summary collapse
- .cron_expression ⇒ Object
- .delayed_job ⇒ Object
- .remove ⇒ Object (also: remove_schedule)
- .reschedule ⇒ Object
- .schedule ⇒ Object
- .scheduled? ⇒ Boolean
Instance Method Summary collapse
Class Method Details
.cron_expression ⇒ Object
67 68 69 |
# File 'app/jobs/marty/cron_job.rb', line 67 def cron_expression ::Marty::BackgroundJob::Schedule.on.find_by(job_class: name)&.cron end |
.delayed_job ⇒ Object
61 62 63 64 65 |
# File 'app/jobs/marty/cron_job.rb', line 61 def delayed_job Delayed::Job. where('handler LIKE ?', "%job_class: #{name}\n%"). first end |
.remove ⇒ Object Also known as: remove_schedule
51 52 53 |
# File 'app/jobs/marty/cron_job.rb', line 51 def remove delayed_job.destroy if scheduled? end |
.reschedule ⇒ Object
43 44 45 46 47 48 49 |
# File 'app/jobs/marty/cron_job.rb', line 43 def reschedule dj = delayed_job return dj.update(cron: cron_expression) if dj.locked_by? remove schedule end |
.schedule ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'app/jobs/marty/cron_job.rb', line 33 def schedule return reschedule if scheduled? cron = cron_expression return if cron.blank? set(cron: cron).perform_later end |
.scheduled? ⇒ Boolean
57 58 59 |
# File 'app/jobs/marty/cron_job.rb', line 57 def scheduled? delayed_job.present? end |
Instance Method Details
#log_failure(exception) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/jobs/marty/cron_job.rb', line 12 def log_failure(exception) error = { message: exception., backtrace: exception.backtrace } ::Marty::BackgroundJob::Log.create!( job_class: self.class.name, status: :failure, error: error ) end |
#log_success ⇒ Object
25 26 27 28 29 30 |
# File 'app/jobs/marty/cron_job.rb', line 25 def log_success ::Marty::BackgroundJob::Log.create!( job_class: self.class.name, status: :success ) end |