بديل خفيف الوزن .
هيوي هو:
هيوي يدعم:
from huey import RedisHuey , crontab
huey = RedisHuey ( 'my-app' , host = 'redis.myapp.com' )
@ huey . task ()
def add_numbers ( a , b ):
return a + b
@ huey . task ( retries = 2 , retry_delay = 60 )
def flaky_task ( url ):
# This task might fail, in which case it will be retried up to 2 times
# with a delay of 60s between retries.
return this_might_fail ( url )
@ huey . periodic_task ( crontab ( minute = '0' , hour = '3' ))
def nightly_backup ():
sync_all_data ()
سيؤدي استدعاء وظيفة مزخرفة task
إلى إدراج استدعاء الوظيفة للتنفيذ من قبل المستهلك. يتم إرجاع مؤشر نتيجة خاص على الفور، والذي يمكن استخدامه لجلب النتيجة بمجرد انتهاء المهمة:
>>> from demo import add_numbers
>>> res = add_numbers( 1 , 2 )
>>> res
>>> res()
3
يمكن جدولة المهام ليتم تشغيلها في المستقبل:
>>> res = add_numbers.schedule(( 2 , 3 ), delay = 10 ) # Will be run in ~10s.
>>> res( blocking = True ) # Will block until task finishes, in ~10s.
5
للمزيد من المعلومات، راجع الدليل أو ألق نظرة على رمز المثال.
قم بتشغيل المستهلك من خلال أربع عمليات عاملة:
$ huey_consumer.py my_app.huey -k process -w 4
لتشغيل المستهلك باستخدام مؤشر ترابط عامل واحد (افتراضي):
$ huey_consumer.py my_app.huey
إذا كانت أحمال عملك مرتبطة في الغالب بـ IO، فيمكنك تشغيل المستهلك باستخدام سلاسل رسائل أو حلقات خضراء بدلاً من ذلك. نظرًا لأن الكرات الخضراء خفيفة الوزن جدًا، يمكنك تشغيل عدد لا بأس به منها بكفاءة:
$ huey_consumer.py my_app.huey -k greenlet -w 32
تم تصميم تصميم Huey ومجموعة الميزات من خلال إمكانيات قاعدة بيانات Redis. يعد Redis مناسبًا بشكل رائع لمكتبة قائمة انتظار المهام خفيفة الوزن مثل Huey: فهي قائمة بذاتها ومتعددة الاستخدامات ويمكن أن تكون حلاً متعدد الأغراض لمهام تطبيقات الويب الأخرى مثل التخزين المؤقت ونشر الأحداث والتحليلات وتحديد المعدل والمزيد.
على الرغم من أن Huey تم تصميمه مع وضع Redis في الاعتبار، إلا أن نظام التخزين يطبق واجهة برمجة تطبيقات بسيطة ويمكن استخدام العديد من الأدوات الأخرى بدلاً من Redis إذا كان هذا هو تفضيلك.
يأتي Huey مزودًا بدعم مدمج لـ Redis وSqlite والتخزين في الذاكرة.
انظر وثائق هيوي.
راجع الكود المصدري ومتعقب المشكلات على Github.
تم تسمية هيوي تكريما لقطتي: