Module: RocketJob::Concerns::Worker::ClassMethods
- Defined in:
- lib/rocket_job/concerns/worker.rb
Instance Method Summary collapse
-
#build(method, *args, &block) ⇒ Object
Build a Rocket Job instance.
-
#later(method, *args, &block) ⇒ Object
Returns [Job] after queue-ing it for processing.
-
#now(method, *args, &block) ⇒ Object
Create a job and process it immediately in-line by this thread.
-
#perform_build(*args, &block) ⇒ Object
Method to be performed later.
-
#perform_later(*args, &block) ⇒ Object
Method to be performed later.
-
#perform_now(*args, &block) ⇒ Object
Method to be performed now.
-
#rocket_job(&block) ⇒ Object
Define job defaults.
Instance Method Details
#build(method, *args, &block) ⇒ Object
Build a Rocket Job instance
Note:
- #save! must be called on the return job instance if it needs to be
queued for processing.
- If data is uploaded into the job instance before saving, and is then
discarded, call #cleanup! to clear out any partially uploaded data
47 48 49 50 51 52 |
# File 'lib/rocket_job/concerns/worker.rb', line 47 def build(method, *args, &block) job = new(arguments: args, perform_method: method.to_sym) @rocket_job_defaults.call(job) if @rocket_job_defaults block.call(job) if block job end |
#later(method, *args, &block) ⇒ Object
Returns [Job] after queue-ing it for processing
19 20 21 22 23 24 25 26 27 |
# File 'lib/rocket_job/concerns/worker.rb', line 19 def later(method, *args, &block) if RocketJob::Config.inline_mode now(method, *args, &block) else job = build(method, *args, &block) job.save! job end end |
#now(method, *args, &block) ⇒ Object
Create a job and process it immediately in-line by this thread
30 31 32 33 34 35 36 37 38 |
# File 'lib/rocket_job/concerns/worker.rb', line 30 def now(method, *args, &block) job = build(method, *args, &block) worker = RocketJob::Worker.new(name: 'inline') worker.started job.start while job.running? && !job.work(worker) end job end |
#perform_build(*args, &block) ⇒ Object
Method to be performed later
60 61 62 |
# File 'lib/rocket_job/concerns/worker.rb', line 60 def perform_build(*args, &block) build(:perform, *args, &block) end |
#perform_later(*args, &block) ⇒ Object
Method to be performed later
55 56 57 |
# File 'lib/rocket_job/concerns/worker.rb', line 55 def perform_later(*args, &block) later(:perform, *args, &block) end |
#perform_now(*args, &block) ⇒ Object
Method to be performed now
65 66 67 |
# File 'lib/rocket_job/concerns/worker.rb', line 65 def perform_now(*args, &block) now(:perform, *args, &block) end |
#rocket_job(&block) ⇒ Object
Define job defaults
70 71 72 73 |
# File 'lib/rocket_job/concerns/worker.rb', line 70 def rocket_job(&block) @rocket_job_defaults = block self end |