mirror of
https://github.com/internetee/registry.git
synced 2025-06-01 02:14:10 +02:00
Move job migration to rake task
This commit is contained in:
parent
5ed1625a45
commit
8b398d74f2
2 changed files with 45 additions and 16 deletions
|
@ -1,25 +1,25 @@
|
||||||
class MigrateQueJobs < ActiveRecord::Migration[6.0]
|
class MigrateQueJobs < ActiveRecord::Migration[6.0]
|
||||||
def up
|
def up
|
||||||
QueJob.all.each do |job|
|
# QueJob.all.each do |job|
|
||||||
if skip_condition(job)
|
# if skip_condition(job)
|
||||||
logger.info "Skipped Que job migration: #{job.inspect}"
|
# logger.info "Skipped Que job migration: #{job.inspect}"
|
||||||
else
|
# else
|
||||||
args = job.args
|
# args = job.args
|
||||||
|
#
|
||||||
job.job_class.constantize.set(wait_until: job.run_at).perform_later(args)
|
# job.job_class.constantize.set(wait_until: job.run_at).perform_later(args)
|
||||||
end
|
# end
|
||||||
end
|
# end
|
||||||
end
|
end
|
||||||
|
|
||||||
def down
|
def down
|
||||||
# raise ActiveRecord::IrreversibleMigration
|
# raise ActiveRecord::IrreversibleMigration
|
||||||
end
|
end
|
||||||
|
|
||||||
def logger
|
# def logger
|
||||||
@logger ||= Logger.new(Rails.root.join('log', 'que_to_sidekiq_migration.log'))
|
# @logger ||= Logger.new(Rails.root.join('log', 'que_to_sidekiq_migration.log'))
|
||||||
end
|
# end
|
||||||
|
#
|
||||||
def skip_condition(job)
|
# def skip_condition(job)
|
||||||
job.last_error.present? || !(job.job_class.constantize < ApplicationJob)
|
# job.last_error.present? || !(job.job_class.constantize < ApplicationJob)
|
||||||
end
|
# end
|
||||||
end
|
end
|
||||||
|
|
29
lib/tasks/migrate_jobs.rake
Normal file
29
lib/tasks/migrate_jobs.rake
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue