31 lines
1 KiB
Ruby
31 lines
1 KiB
Ruby
namespace :data_updates do
|
|
desc "Enqueue Sidekiq worker to handle data updates"
|
|
task enqueue_data_update_worker: :environment do
|
|
if Rails.env.development?
|
|
Rake::Task["data_updates:run"].execute
|
|
else
|
|
# Ensure new code has been deployed before we run our update scripts
|
|
DataUpdateWorker.perform_in(10.minutes)
|
|
end
|
|
end
|
|
|
|
desc "Run data updates"
|
|
task run: :environment do
|
|
DataUpdateWorker.new.perform
|
|
end
|
|
|
|
desc "Get data update status"
|
|
task status: :environment do
|
|
# Disable ActiveRecord logging for this task.
|
|
# See: https://github.com/forem/forem/pull/13653#discussion_r626278422
|
|
ActiveRecord::Base.logger = nil
|
|
# rubocop:disable Style/FormatStringToken
|
|
puts format(" %-9s %-14s %-40s", "Status", "ID", "Description")
|
|
puts "-" * 80
|
|
DataUpdateScript.find_each do |dus|
|
|
id, file_name = dus.file_name.split("_", 2)
|
|
puts format("%+10s %+14s %-40s", dus.status, id, file_name.tr("_", " "))
|
|
end
|
|
# rubocop:enable Style/FormatStringToken
|
|
end
|
|
end
|