Module: Toro::Worker::ClassMethods
- Defined in:
- lib/toro/worker.rb
Instance Method Summary collapse
- #create_job(item) ⇒ Object
- #normalize_job(item) ⇒ Object
- #perform_async(*args) ⇒ Object
- #perform_at(time, *args) ⇒ Object
- #perform_in(interval, *args) ⇒ Object
- #queue ⇒ Object
- #toro_options(options = {}) ⇒ Object
Instance Method Details
#create_job(item) ⇒ Object
21 22 23 |
# File 'lib/toro/worker.rb', line 21 def create_job(item) Toro::Client.create_job(normalize_job(item)) end |
#normalize_job(item) ⇒ Object
25 26 27 28 |
# File 'lib/toro/worker.rb', line 25 def normalize_job(item) name = respond_to?(:job_name) ? send(:job_name, *(item[:args])) : nil { class_name: self.name, name: name }.merge(item) end |
#perform_async(*args) ⇒ Object
8 9 10 |
# File 'lib/toro/worker.rb', line 8 def perform_async(*args) create_job(args: args, queue: queue) end |
#perform_at(time, *args) ⇒ Object
12 13 14 |
# File 'lib/toro/worker.rb', line 12 def perform_at(time, *args) create_job(args: args, queue: queue, scheduled_at: time, status: 'scheduled') end |
#perform_in(interval, *args) ⇒ Object
16 17 18 19 |
# File 'lib/toro/worker.rb', line 16 def perform_in(interval, *args) time = Time.now + interval perform_at(time, *args) end |
#queue ⇒ Object
30 31 32 |
# File 'lib/toro/worker.rb', line 30 def queue [:queue] end |
#toro_options(options = {}) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/toro/worker.rb', line 34 def (={}) @toro_options ||= { queue: Toro.[:default_queue], retry_interval: nil } @toro_options.merge!() @toro_options end |