زيادة الكرفس وقت إعادة المحاولة كل دورة إعادة المحاولة

StackOverflow https://stackoverflow.com/questions/9470089

  •  13-11-2019
  •  | 
  •  

سؤال

أقوم بإعادة المحاولة مع الكرفس كما هو الحال في المستندات-مثال:

@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 في كل مرة حتى يتجاوز أي مستوى تريده (أو، احتفظ بعدد إذا كنت تفضل عدد معين من المرات ...)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top