In Celery, è possibile eseguire retry
in caso di eccezione. Si può fare in questo modo:Come implementare autoretry per le attività di Celery
@task(max_retries=5)
def div(a, b):
try:
return a/b
except ZeroDivisionError, exc:
raise div.retry(exc=exc)
In questo caso, se si vuole dividere per zero, operazione verrà retied cinque volte. Ma devi verificare gli errori nel tuo codice esplicitamente. L'attività non verrà ripetuta se si salta il blocco try-except
.
Voglio che le mie funzioni a guardare come:
@celery.task(autoretry_on=ZeroDivisionError, max_retries=5)
def div(a, b):
return a/b
Questa perde il risultato però. Non dovrebbe restituire qualcosa? – dalore