Trong cần tây, bạn có thể retry
mọi tác vụ trong trường hợp ngoại lệ. Bạn có thể làm như vậy:Cách thực hiện ghi chú tự động cho các nhiệm vụ Celery
@task(max_retries=5)
def div(a, b):
try:
return a/b
except ZeroDivisionError, exc:
raise div.retry(exc=exc)
Trong trường hợp này, nếu bạn muốn chia cho 0, nhiệm vụ sẽ được thử lại năm lần. Nhưng bạn phải kiểm tra lỗi trong mã số rõ ràng là. Tác vụ sẽ không được thử lại nếu bạn bỏ qua khối try-except
.
Tôi muốn các chức năng của tôi để trông giống như:
@celery.task(autoretry_on=ZeroDivisionError, max_retries=5)
def div(a, b):
return a/b
này mất kết quả mặc dù. Không nên nó trả lại một cái gì đó? – dalore