У меня стоит задача запускать celery таски с разным retry аргументами, кто подскажет как это можно реализовать?
Вот семпл из кода чтобы потестить:
from celery import Celery
app = Celery('tasks', broker='amqp://guest@localhost//')
import celery
class RetryCeleryWorker(celery.Task):
autoretry_for = (Exception,)
retry_backoff = True
retry_backoff_max = 700
retry_jitter = False
@app.task(base=RetryCeleryWorker)
def add():
print('add starting')
0/0
print('add finish')
Я нашел такое решение, но оно не работает
https://lifesaver.codes/answer/delay-and-apply-asy...
хочу чтобы запуск задачки был примерно такой
from tasks import add, app, RetryCeleryWorker
add.apply_async(retry=True, retry_policy={
'max_retries': 5,
})
но в celery почему-то не попадают max_retries и другие аргументы или не считываются
Идея в том чтобы если я передавал что-то, то это применялось как в атрибутах celery, а если не передаю, то используется дефолтные в классе
upd. нашел это, похоже надо писать свой костыль
https://github.com/celery/celery/issues/2457