Class: Plines::JobEnqueuer
- Inherits:
-
Object
- Object
- Plines::JobEnqueuer
- Defined in:
- lib/plines/job_enqueuer.rb
Overview
Responsible for enqueing Qless jobs based on the given dependency graph.
Defined Under Namespace
Classes: TimeoutKey
Instance Method Summary collapse
- #enqueue_jobs ⇒ Object
-
#initialize(dependency_graph, job_batch, &block) ⇒ JobEnqueuer
constructor
A new instance of JobEnqueuer.
Constructor Details
#initialize(dependency_graph, job_batch, &block) ⇒ JobEnqueuer
Returns a new instance of JobEnqueuer.
6 7 8 9 10 11 |
# File 'lib/plines/job_enqueuer.rb', line 6 def initialize(dependency_graph, job_batch, &block) @dependency_graph = dependency_graph @job_batch = job_batch @qless_job_options_block = block @timeout_reduction = job_batch.timeout_reduction end |
Instance Method Details
#enqueue_jobs ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/plines/job_enqueuer.rb', line 13 def enqueue_jobs @dependency_graph.ordered_steps.each do |step| jid = Qless.generate_jid jids[step] = jid @job_batch.add_job(jid, *step.external_dependencies.map(&:name)) enqueue_job_for(step, jid, dependency_jids_for(step)) setup_external_dep_timeouts_for(step) end enqueue_external_dependency_timeouts self end |