Kami memiliki beberapa tugas bersama dalam basis kode Django kami yang mengambil data dari db dan memanipulasi. Apakah mungkin untuk memasukkan konfigurasi seledri yang mencoba kembali "semua" tugas yang gagal daripada menambahkan "coba-tangkap" di setiap tugas individu

0
arthi arumugham 19 September 2019, 18:04

1 menjawab

Jawaban Terbaik

Pertimbangkan untuk menggunakan opsi autoretry_for, lihat dokumen seledri

UPD.
Akan lebih mudah untuk tidak memberikan opsi untuk setiap tugas setelah Anda menentukannya. Sayangnya pada saat itu autoretry_for hanya dapat diteruskan sebagai argumen dekorator tugas, tetapi ada pendekatan fungsional untuk melakukan trik

from functools import partial
from celery import shared_task

shared_task = partial(shared_task, autoretry_for=(RuntimeError,))))
1
Greenev 11 November 2019, 09:33