Module: Que::Locks::ActiveJobExtensions
- Defined in:
- lib/que/locks/active_job_extensions.rb
Defined Under Namespace
Classes: ExclusiveJobWrapper
Instance Method Summary
collapse
Instance Method Details
#do_enqueue(job, **job_options) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/que/locks/active_job_extensions.rb', line 18
def do_enqueue(job, **job_options)
job_options[:priority] = job.priority if job.respond_to? :priority
if job.respond_to?(:queue_name) && ::ActiveJob.version.segments.first > 4
job_options[:queue] = job.queue_name
end
que_job = ExclusiveJobWrapper.enqueue job.serialize, job_options: job_options
if que_job && job.respond_to?(:provider_job_id=)
job.provider_job_id = que_job.attrs["job_id"]
end
que_job
end
|
#enqueue(job) ⇒ Object
8
9
10
11
|
# File 'lib/que/locks/active_job_extensions.rb', line 8
def enqueue(job)
return super unless job.class.exclusive_execution_lock
do_enqueue job
end
|
#enqueue_at(job, timestamp) ⇒ Object
13
14
15
16
|
# File 'lib/que/locks/active_job_extensions.rb', line 13
def enqueue_at(job, timestamp)
return super unless job.class.exclusive_execution_lock
do_enqueue job, run_at: Time.at(timestamp)
end
|