16 行
533 B
Ruby
16 行
533 B
Ruby
namespace :counts do
|
|
desc 'Process the persistent Counts export queue (run under a process supervisor)'
|
|
task export_worker: :environment do
|
|
stopping = false
|
|
['TERM', 'INT'].each { |signal| Signal.trap(signal) { stopping = true } }
|
|
at_exit do
|
|
path = CountsExportJobs.directory.join("#{ CountsExportJobs.worker_id }.json")
|
|
File.unlink(path) if path.exist?
|
|
end
|
|
until stopping
|
|
worked = Rails.application.executor.wrap { CountsExportJobs.work_one }
|
|
sleep(1) unless worked
|
|
end
|
|
end
|
|
end
|