سؤال

ولدي موقع على شبكة الانترنت أنا أبحث في البقاء مع تحديث وتتخلص من بعض المحتويات من هناك كل يوم. أنا أعرف يتم تحديث الموقع يدويا في وقت معين، ولقد حدد جداول كرون لتعكس هذا، ولكن منذ يتم تحديثها يدويا يمكن أن يكون بعد 10 أو حتى 20 دقيقة.

والآن لدي تحديث كرون-الإختراق العش كل 5 دقائق، ولكن أود أن استخدام المكتبة المؤجلة لفعل الأشياء بطريقة أكثر دقة. أنا أحاول أن سلسلة المهام المؤجلة حتى أتمكن من معرفة ما اذا كان هناك تحديث وتأجيل نفس التحديث لبضع دقائق إذا كان هناك لا شيء، وتؤجل مرة أخرى إذا لزم الأمر حتى يكون هناك أخيرا تحديثا.

ولدي بعض رمز اعتقدت أن العمل، ولكنه يرجئ سوى مرة واحدة، عندما بدلا من ذلك بحاجة إلى مواصلة تأجيل حتى يكون هناك تحديث:

و(أنا باستخدام بايثون)

class Ripper(object):
    def rip(self):
        if siteHasNotBeenUpdated:
            deferred.defer(self.rip, _countdown=120)
        else:
            updateMySite()

وكان هذا مجرد مقتطفات مبسط واضح.
أعتقد أن هذا كان بسيطا بما فيه الكفاية للعمل، ولكن ربما أنا قد حصلت عليه للتو عن الخطأ؟

هل كانت مفيدة؟

المحلول

والمثال كنت تعطي يجب أن تعمل على ما يرام. تحتاج إلى إضافة قطع الأشجار لتحديد ما إذا كان يتم استدعاء deferred.defer عندما كنت تعتقد أنه هو. سوف مزيد من المعلومات تساعد أيضا: كيف يتم تحديد siteHasNotBeenUpdated

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