Module: Easyop::Plugins::Async::ClassMethods
- Defined in:
- lib/easyop/plugins/async.rb
Instance Method Summary collapse
- #_async_default_queue ⇒ Object
-
#call_async(attrs = {}, wait: nil, wait_until: nil, queue: nil, **extra_attrs) ⇒ Object
Enqueue the operation as a background job.
-
#queue(name) ⇒ Object
Declares a non-default queue for this operation class and its subclasses.
Instance Method Details
#_async_default_queue ⇒ Object
56 57 58 59 |
# File 'lib/easyop/plugins/async.rb', line 56 def _async_default_queue @_async_default_queue || (superclass.respond_to?(:_async_default_queue) ? superclass._async_default_queue : "default") end |
#call_async(attrs = {}, wait: nil, wait_until: nil, queue: nil, **extra_attrs) ⇒ Object
Enqueue the operation as a background job.
MyOp.call_async(email: "x@y.com")
MyOp.call_async(email: "x@y.com", wait: 5.minutes, queue: "low")
46 47 48 49 50 51 52 53 54 |
# File 'lib/easyop/plugins/async.rb', line 46 def call_async(attrs = {}, wait: nil, wait_until: nil, queue: nil, **extra_attrs) merged_attrs = attrs.merge(extra_attrs) _async_ensure_active_job! job = Easyop::Plugins::Async.job_class job = job.set(queue: queue || _async_default_queue) job = job.set(wait: wait) if wait job = job.set(wait_until: wait_until) if wait_until job.perform_later(name, _async_serialize(merged_attrs)) end |
#queue(name) ⇒ Object
Declares a non-default queue for this operation class and its subclasses.
38 39 40 |
# File 'lib/easyop/plugins/async.rb', line 38 def queue(name) @_async_default_queue = name.to_s end |