Sha256: ac7fb9c1bc1b818b78d79b0d10c5e604ed4280c6836a0eb003fb2659a422afe0
Contents?: true
Size: 982 Bytes
Versions: 10
Compression:
Stored size: 982 Bytes
Contents
module Marty module DelayedJob class ScheduledJobPlugin < Delayed::Plugin class << self def cron?(job) job.cron.present? end end callbacks do |lifecycle| # We want to nullify cron column if job schedule was turned off # while the job was running, so it won't add a new record to # delayed_jobs table lifecycle.before(:error) do |worker, job, &block| if cron?(job) begin job_class_str = job.handler.split("\n").find do |line| line.include? 'job_class' end job_class_name = job_class_str.gsub('job_class:', '').strip job_class = job_class_name.constantize job.cron = job_class.cron_expression rescue StandardError end else # No cron job - proceed as normal block.call(worker, job) end end end end end end
Version data entries
10 entries across 10 versions & 1 rubygems