Module: SolidQueue::Job::ConcurrencyControls
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/solid_queue_mongoid/models/job/concurrency_controls.rb
Instance Method Summary collapse
- #blocked? ⇒ Boolean
-
#concurrency_duration ⇒ Object
Returns the concurrency duration from job_class (not stored in DB).
-
#concurrency_limit ⇒ Object
Returns the concurrency limit: uses the stored field when set, otherwise delegates to job_class (AR-compatible behaviour).
- #concurrency_limited? ⇒ Boolean
- #unblock_next_blocked_job ⇒ Object
Instance Method Details
#blocked? ⇒ Boolean
30 31 32 |
# File 'lib/solid_queue_mongoid/models/job/concurrency_controls.rb', line 30 def blocked? blocked_execution.present? end |
#concurrency_duration ⇒ Object
Returns the concurrency duration from job_class (not stored in DB).
44 45 46 |
# File 'lib/solid_queue_mongoid/models/job/concurrency_controls.rb', line 44 def concurrency_duration job_class.respond_to?(:concurrency_duration) ? job_class.concurrency_duration : 5.minutes end |
#concurrency_limit ⇒ Object
Returns the concurrency limit: uses the stored field when set, otherwise delegates to job_class (AR-compatible behaviour).
36 37 38 39 40 41 |
# File 'lib/solid_queue_mongoid/models/job/concurrency_controls.rb', line 36 def concurrency_limit limit = read_attribute(:concurrency_limit) return limit if limit.present? job_class.respond_to?(:concurrency_limit) ? job_class.concurrency_limit : nil end |
#concurrency_limited? ⇒ Boolean
26 27 28 |
# File 'lib/solid_queue_mongoid/models/job/concurrency_controls.rb', line 26 def concurrency_limited? concurrency_key.present? end |
#unblock_next_blocked_job ⇒ Object
20 21 22 23 24 |
# File 'lib/solid_queue_mongoid/models/job/concurrency_controls.rb', line 20 def unblock_next_blocked_job return unless release_concurrency_lock release_next_blocked_job end |