Module: Rage::Deferred::Task::ClassMethods

Defined in:
lib/rage/deferred/task.rb

Instance Method Summary collapse

Instance Method Details

#enqueue(*args, delay: nil, delay_until: nil, **kwargs) ⇒ Object



108
109
110
111
112
113
114
115
116
117
118
# File 'lib/rage/deferred/task.rb', line 108

def enqueue(*args, delay: nil, delay_until: nil, **kwargs)
  context = Rage::Deferred::Context.build(self, args, kwargs)

  Rage::Telemetry.tracer.span_deferred_task_enqueue(task_class: self, context:) do
    Rage::Deferred.__middleware_chain.with_enqueue_middleware(context, delay:, delay_until:) do
      Rage::Deferred.__queue.enqueue(context, delay:, delay_until:)
    end
  end

  nil
end