mirror of
https://github.com/internetee/registry.git
synced 2025-06-05 04:07:33 +02:00
31 lines
760 B
Ruby
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
|