Module: Cosmo::Job::ClassMethods
- Defined in:
- lib/cosmo/job.rb
Instance Method Summary collapse
- #default_options ⇒ Object
- #options(stream: nil, retry: nil, dead: nil) ⇒ Object
- #perform(*args, async: true, **options) ⇒ Object
- #perform_async(*args) ⇒ Object
- #perform_at(timestamp, *args) ⇒ Object
- #perform_in(interval, *args) ⇒ Object
- #perform_sync(*args) ⇒ Object
Instance Method Details
#default_options ⇒ Object
46 47 48 |
# File 'lib/cosmo/job.rb', line 46 def @default_options ||= (superclass.respond_to?(:default_options) ? superclass. : Data::DEFAULTS).dup end |
#options(stream: nil, retry: nil, dead: nil) ⇒ Object
13 14 15 |
# File 'lib/cosmo/job.rb', line 13 def (stream: nil, retry: nil, dead: nil) .merge!({ stream:, retry:, dead: }.compact) end |
#perform(*args, async: true, **options) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/cosmo/job.rb', line 17 def perform(*args, async: true, **) data = Data.new(name, args, .merge()) unless async payload = Utils::Json.parse(data.to_args[1]) raise ArgumentError, "Cannot parse payload" unless payload new.perform(*payload[:args]) return end Publisher.publish_job(data) end |
#perform_async(*args) ⇒ Object
30 31 32 |
# File 'lib/cosmo/job.rb', line 30 def perform_async(*args) perform(*args) end |
#perform_at(timestamp, *args) ⇒ Object
34 35 36 |
# File 'lib/cosmo/job.rb', line 34 def perform_at(, *args) perform(*args, at: ) end |
#perform_in(interval, *args) ⇒ Object
38 39 40 |
# File 'lib/cosmo/job.rb', line 38 def perform_in(interval, *args) perform(*args, in: interval) end |
#perform_sync(*args) ⇒ Object
42 43 44 |
# File 'lib/cosmo/job.rb', line 42 def perform_sync(*args) perform(*args, async: false) end |