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
164 165 166 167 168 169 170 171 172 173 174 |
# File 'lib/rage/deferred/task.rb', line 164 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.
120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/rage/deferred/task.rb', line 120 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.
160 161 162 |
# File 'lib/rage/deferred/task.rb', line 160 def retry_interval(exception, attempt:) __default_backoff(attempt) end |