internetee-registry/lib/tasks/migrate_jobs.rake
2021-05-19 12:29:16 +05:00

31 lines
760 B
Ruby

namespace :migrate_jobs do
task all: :environment do
QueJob.all.each do |job|
process_que_job(job)
end
end
task first: :environment do
job = QueJob.first
process_que_job(job)
end
def process_que_job(que_job)
return unless que_job
if skip_condition(que_job)
puts "Skipped Que job migration: #{que_job.inspect}"
else
args = que_job.args
time = que_job.run_at
time = Time.zone.now + 1.minute if time < Time.zone.now
que_job.job_class.constantize.set(wait_until: time).perform_later(*args)
end
end
def skip_condition(que_job)
que_job.last_error.present? || !(que_job.job_class.constantize < ApplicationJob) ||
!(que_job.job_class == 'DomainExpireEmailJob')
end
end