From 8b398d74f2eecbf3c654619e30769e0097916495 Mon Sep 17 00:00:00 2001 From: Alex Sherman Date: Tue, 18 May 2021 13:19:10 +0500 Subject: [PATCH] Move job migration to rake task --- db/data/20210405081552_migrate_que_jobs.rb | 32 +++++++++++----------- lib/tasks/migrate_jobs.rake | 29 ++++++++++++++++++++ 2 files changed, 45 insertions(+), 16 deletions(-) create mode 100644 lib/tasks/migrate_jobs.rake diff --git a/db/data/20210405081552_migrate_que_jobs.rb b/db/data/20210405081552_migrate_que_jobs.rb index 059d13dea..d50ce5519 100644 --- a/db/data/20210405081552_migrate_que_jobs.rb +++ b/db/data/20210405081552_migrate_que_jobs.rb @@ -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 diff --git a/lib/tasks/migrate_jobs.rake b/lib/tasks/migrate_jobs.rake new file mode 100644 index 000000000..687187c54 --- /dev/null +++ b/lib/tasks/migrate_jobs.rake @@ -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