mirror of
https://github.com/internetee/registry.git
synced 2025-06-03 19:27:29 +02:00
29 lines
641 B
Ruby
29 lines
641 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
|
|
|
|
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)
|
|
end
|
|
end
|