زيادة الكرفس وقت إعادة المحاولة كل دورة إعادة المحاولة
سؤال
أقوم بإعادة المحاولة مع الكرفس كما هو الحال في المستندات-مثال:
@task()
def add(x, y):
try:
...
except Exception, exc:
add.retry(exc=exc, countdown=60) # override the default and
# retry in 1 minute
كيف يمكنني زيادة العد التنازلي لإعادة المحاولة في كل مرة تحدث فيها إعادة المحاولة لهذه المهمة - على سبيل المثال.60 ثواني, 2 الدقائق, 4 دقائق وهلم جرا حتى يتم رفع الحد الأقصى للتجاوزات?
المحلول
منذ الإصدار 4.2 يمكنك استخدام الخيارات autoretry_for
و retry_backoff
لهذه الأغراض ، على سبيل المثال:
@task(max_retries=10, autoretry_for=(Exception,), retry_backoff=60)
def add(x, y):
pass
نصائح أخرى
إليك طريقة بسيطة لإنشاء تأخير أكبر في كل مرة يتم فيها تقييم المهمة.يتم تحديث هذه القيمة من قبل الكرفس نفسه حتى لا تحتاج إلى إدارة أي شيء بنفسك. giveacodicetagpre.
ملاحظة: تتكرر المهمة الأولى مع العد التنازلي 0. نظرا لعدد إعادة المحاولة هو 0 للتشغيل الأول.
احتفظ بمتغير مع وقت إعادة المحاولة الأخير، وضربه بمقدار 2 في كل مرة حتى يتجاوز أي مستوى تريده (أو، احتفظ بعدد إذا كنت تفضل عدد معين من المرات ...)