Class: Que::Scheduler::SchedulerJob
- Inherits:
-
Job
- Object
- Job
- Que::Scheduler::SchedulerJob
- Defined in:
- lib/que/scheduler/scheduler_job.rb
Constant Summary collapse
- SCHEDULER_FREQUENCY =
60
Instance Method Summary collapse
Instance Method Details
#enqueue_required_jobs(calculator_result, logs) ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/que/scheduler/scheduler_job.rb', line 40 def enqueue_required_jobs(calculator_result, logs) calculator_result.missed_jobs.filter_map do |to_enqueue| to_enqueue.enqueue.tap do |enqueued_job| check_enqueued_job(to_enqueue, enqueued_job, logs) end end end |
#run(options = nil) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/que/scheduler/scheduler_job.rb', line 22 def run( = nil) Que::Scheduler::Db.transaction do Que::Scheduler::StateChecks.check scheduler_job_args = SchedulerJobArgs.build() logs = ["que-scheduler last ran at #{scheduler_job_args.last_run_time}."] result = EnqueueingCalculator.parse(Scheduler.schedule.values, scheduler_job_args) enqueued_jobs = enqueue_required_jobs(result, logs) # Remove this job and schedule self again destroy enqueue_self_again( scheduler_job_args, scheduler_job_args.as_time, result.job_dictionary, enqueued_jobs ) # Only now we're sure nothing errored, log the results logs.each { |str| ::Que.log(event: :"que-scheduler", message: str) } end end |