1234567891011121314151617181920 |
- class AgentPropagateJob < ActiveJob::Base
- queue_as :propagation
- def perform
- Agent.receive!
- end
- def self.can_enqueue?
- case queue_adapter.class.name # not using class since it would load adapter dependent gems
- when 'ActiveJob::QueueAdapters::DelayedJobAdapter'
- return Delayed::Job.where(failed_at: nil, queue: 'propagation').count == 0
- when 'ActiveJob::QueueAdapters::ResqueAdapter'
- return Resque.size('propagation') == 0 &&
- Resque.workers.select { |w| w.job && w.job['queue'] && w.job['queue']['propagation'] }.count == 0
- else
- raise NotImplementedError, "unsupported adapter: #{queue_adapter}"
- end
- end
- end
|