Co-authored-by: Eve832 <eve.meelan@grafana.com>
Co-authored-by: Francisco Montes de Oca <nevermind89x@gmail.com>
Co-authored-by: Ildar Iskhakov <ildar.iskhakov@grafana.com>
Co-authored-by: Innokentii Konstantinov <innokenty.konstantinov@grafana.com>
Co-authored-by: Julia <ferril.darkdiver@gmail.com>
Co-authored-by: maskin25 <kengurek@gmail.com>
Co-authored-by: Matias Bordese <mbordese@gmail.com>
Co-authored-by: Matvey Kukuy <motakuk@gmail.com>
Co-authored-by: Michael Derynck <michael.derynck@grafana.com>
Co-authored-by: Richard Hartmann <richih@richih.org>
Co-authored-by: Robby Milo <robbymilo@fastmail.com>
Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
Co-authored-by: Vadim Stepanov <vadimkerr@gmail.com>
Co-authored-by: Yulia Shanyrova <yulia.shanyrova@grafana.com>
30 lines
867 B
Python
30 lines
867 B
Python
from celery import Task, shared_task
|
|
|
|
RETRY_QUEUE = "retry"
|
|
|
|
|
|
class DedicatedQueueRetryTask(Task):
|
|
"""
|
|
Custom task sends all retried task to the dedicated retry queue.
|
|
Is is needed to not to overload regular (high, medium, low) queues with retried tasks.
|
|
"""
|
|
|
|
def retry(
|
|
self, args=None, kwargs=None, exc=None, throw=True, eta=None, countdown=None, max_retries=None, **options
|
|
):
|
|
# Just call retry with queue argument
|
|
return super().retry(
|
|
args=args,
|
|
kwargs=kwargs,
|
|
exc=exc,
|
|
throw=throw,
|
|
eta=eta,
|
|
countdown=countdown,
|
|
max_retries=max_retries,
|
|
queue=RETRY_QUEUE,
|
|
**options,
|
|
)
|
|
|
|
|
|
def shared_dedicated_queue_retry_task(*args, **kwargs):
|
|
return shared_task(*args, base=DedicatedQueueRetryTask, **kwargs)
|