docbrown/app/workers/data_update_worker.rb

22 lines
557 B
Ruby

class DataUpdateWorker
include Sidekiq::Worker
sidekiq_options queue: :high_priority, retry: 5
def perform
script_ids = DataUpdateScript.load_script_ids
scripts_to_run = DataUpdateScript.where(id: script_ids).select(&:enqueued?)
scripts_to_run.each do |script|
script.mark_as_run!
run_script(script)
end
end
def run_script(script)
script.file_class.new.run
script.mark_as_finished!
rescue StandardError => e
script.mark_as_failed!
Honeybadger.notify(e, context: { script_id: script.id })
end
end