Class: SolidQueue::Job
- Includes:
- Clearable, Executable, Recurrable
- Defined in:
- lib/solid_queue_mongoid/models/job.rb,
lib/solid_queue_mongoid/models/classes.rb,
lib/solid_queue_mongoid/models/job/clearable.rb,
lib/solid_queue_mongoid/models/job/retryable.rb,
lib/solid_queue_mongoid/models/job/executable.rb,
lib/solid_queue_mongoid/models/job/recurrable.rb,
lib/solid_queue_mongoid/models/job/schedulable.rb,
lib/solid_queue_mongoid/models/job/concurrency_controls.rb
Defined Under Namespace
Modules: Clearable, ConcurrencyControls, Executable, Recurrable, Retryable, Schedulable Classes: EnqueueError
Constant Summary collapse
- DEFAULT_PRIORITY =
0- DEFAULT_QUEUE_NAME =
"default"
Constants inherited from Record
Class Method Summary collapse
-
.enqueue(active_job, scheduled_at: Time.current) ⇒ Object
Primary enqueue entry point — called by the ActiveJob adapter.
-
.enqueue_all(active_jobs) ⇒ Object
Bulk enqueue — called by the ActiveJob adapter for perform_all_later.
Instance Method Summary collapse
Methods included from Executable
#discard, #dispatch, #dispatch_bypassing_concurrency_limits, #execution, #finished!, #finished?, #prepare_for_execution, #ready, #status
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
.enqueue(active_job, scheduled_at: Time.current) ⇒ Object
Primary enqueue entry point — called by the ActiveJob adapter.
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/solid_queue_mongoid/models/job.rb', line 36 def enqueue(active_job, scheduled_at: Time.current) active_job.scheduled_at = scheduled_at create_from_active_job(active_job).tap do |enqueued_job| if enqueued_job.persisted? active_job.provider_job_id = enqueued_job.id.to_s active_job.successfully_enqueued = true end end end |
.enqueue_all(active_jobs) ⇒ Object
Bulk enqueue — called by the ActiveJob adapter for perform_all_later.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/solid_queue_mongoid/models/job.rb', line 48 def enqueue_all(active_jobs) active_jobs.each { |job| job.scheduled_at = Time.current } active_jobs_by_job_id = active_jobs.index_by(&:job_id) jobs = create_all_from_active_jobs(active_jobs) prepare_all_for_execution(jobs).tap do |enqueued_jobs| enqueued_jobs.each do |enqueued_job| aj = active_jobs_by_job_id[enqueued_job.active_job_id] next unless aj aj.provider_job_id = enqueued_job.id.to_s aj.successfully_enqueued = true end end active_jobs.count(&:successfully_enqueued?) end |
Instance Method Details
#deserialize_for_active_job ⇒ Object
99 100 101 |
# File 'lib/solid_queue_mongoid/models/job.rb', line 99 def deserialize_for_active_job ActiveJob::Base.deserialize(arguments) end |