Module: Rage::Deferred::Task::ClassMethods
- Defined in:
- lib/rage/deferred/task.rb
Instance Method Summary collapse
- #enqueue(*args, delay: nil, delay_until: nil, **kwargs) ⇒ Object
-
#max_retries(count) ⇒ Object
Set the maximum number of retry attempts for this task.
-
#retry_interval(exception, attempt:) ⇒ Integer, ...
Override this method to customize retry behavior per exception.
Instance Method Details
#enqueue(*args, delay: nil, delay_until: nil, **kwargs) ⇒ Object
167 168 169 170 171 172 173 174 175 176 177 |
# File 'lib/rage/deferred/task.rb', line 167 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 |
#max_retries(count) ⇒ Object
Set the maximum number of retry attempts for this task.
123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/rage/deferred/task.rb', line 123 def max_retries(count) value = Integer(count) if value.negative? raise ArgumentError, "max_retries should be a valid non-negative integer" end @__max_retries = value rescue ArgumentError, TypeError raise ArgumentError, "max_retries should be a valid non-negative integer" end |
#retry_interval(exception, attempt:) ⇒ Integer, ...
Override this method to customize retry behavior per exception.
Return an Integer to retry in that many seconds.
Return super to use the default exponential backoff.
Return false or nil to abort retries.
163 164 165 |
# File 'lib/rage/deferred/task.rb', line 163 def retry_interval(exception, attempt:) __default_backoff(attempt) end |