Class: SolidQueue::ReadyExecution
- Defined in:
- lib/solid_queue_mongoid/models/classes.rb,
lib/solid_queue_mongoid/models/ready_execution.rb
Constant Summary
Constants inherited from Record
SolidQueue::Record::INDEX_HINTS
Class Method Summary collapse
-
.aggregated_count_across(queue_list) ⇒ Object
Called by Worker#all_work_completed?.
-
.claim(queue_list, limit, process_id) ⇒ Object
Primary entry point called by SolidQueue::Worker.
-
.claim_batch(limit, process:, queues: "*") ⇒ Object
Integration spec compatible wrapper: claim_batch(limit, process:, queues:).
Methods inherited from Execution
create_all_from_jobs, #discard, discard_all_from_jobs, discard_all_in_batches, type, #type
Methods inherited from Record
create_or_find_by!, find_by!, index, index_specifications, index_specifications=, inherited, non_blocking_lock, supports_insert_conflict_target?, transaction, use_index
Class Method Details
.aggregated_count_across(queue_list) ⇒ Object
Called by Worker#all_work_completed?.
29 30 31 |
# File 'lib/solid_queue_mongoid/models/ready_execution.rb', line 29 def aggregated_count_across(queue_list) QueueSelector.new(queue_list, self).scoped_relations.sum(&:count) end |
.claim(queue_list, limit, process_id) ⇒ Object
Primary entry point called by SolidQueue::Worker.
Atomically claims up to limit executions from queue_list for process_id.
14 15 16 17 18 19 20 |
# File 'lib/solid_queue_mongoid/models/ready_execution.rb', line 14 def claim(queue_list, limit, process_id) QueueSelector.new(queue_list, self).scoped_relations.flat_map do |queue_relation| select_and_lock(queue_relation, process_id, limit).tap do |locked| limit -= locked.size end end end |
.claim_batch(limit, process:, queues: "*") ⇒ Object
Integration spec compatible wrapper:
claim_batch(limit, process:, queues:)
24 25 26 |
# File 'lib/solid_queue_mongoid/models/ready_execution.rb', line 24 def claim_batch(limit, process:, queues: "*") claim(queues, limit, process.id) end |