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
168 169 170 171 172 173 174 175 176 177 178 |
# File 'lib/rage/deferred/task.rb', line 168 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.
124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/rage/deferred/task.rb', line 124 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.
164 165 166 |
# File 'lib/rage/deferred/task.rb', line 164 def retry_interval(exception, attempt:) __default_backoff(attempt) end |