Merge pull request #1988 from internetee/move-jobs-migration-to-rake-task

Move job migration to rake task
This commit is contained in:
Alex Sherman 2021-05-18 13:30:19 +05:00 committed by GitHub
commit df0fd3dadf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 45 additions and 16 deletions

View file

@ -1,25 +1,25 @@
class MigrateQueJobs < ActiveRecord::Migration[6.0]
def up
QueJob.all.each do |job|
if skip_condition(job)
logger.info "Skipped Que job migration: #{job.inspect}"
else
args = job.args
job.job_class.constantize.set(wait_until: job.run_at).perform_later(args)
end
end
# QueJob.all.each do |job|
# if skip_condition(job)
# logger.info "Skipped Que job migration: #{job.inspect}"
# else
# args = job.args
#
# job.job_class.constantize.set(wait_until: job.run_at).perform_later(args)
# end
# end
end
def down
# raise ActiveRecord::IrreversibleMigration
end
def logger
@logger ||= Logger.new(Rails.root.join('log', 'que_to_sidekiq_migration.log'))
end
def skip_condition(job)
job.last_error.present? || !(job.job_class.constantize < ApplicationJob)
end
# def logger
# @logger ||= Logger.new(Rails.root.join('log', 'que_to_sidekiq_migration.log'))
# end
#
# def skip_condition(job)
# job.last_error.present? || !(job.job_class.constantize < ApplicationJob)
# end
end

View file

@ -0,0 +1,29 @@
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