إصدار: | 5.5.0rc3 (الحصانة) |
---|---|
الويب: | https://docs.celeryq.dev/en/stable/index.html |
تحميل: | https://pypi.org/project/celery/ |
مصدر: | https://github.com/celery/celery/ |
الكلمات الرئيسية: | مهمة، قائمة الانتظار، وظيفة، غير متزامن، Rabbitmq، AMQP، Redis، بيثون، موزعة، الجهات الفاعلة |
يعتمد هذا المشروع على تبرعاتكم السخية.
إذا كنت تستخدم الكرفس لإنشاء منتج تجاري، فيرجى التفكير في أن تصبح الداعم أو الراعي لنا لضمان مستقبل الكرفس.
متاح كجزء من اشتراك Tidelift.
يعمل مشرفو celery
وآلاف الحزم الأخرى مع Tidelift لتقديم الدعم التجاري والصيانة للتبعيات مفتوحة المصدر التي تستخدمها لبناء تطبيقاتك. يمكنك توفير الوقت وتقليل المخاطر وتحسين سلامة التعليمات البرمجية، مع الدفع لمشرفي التبعيات الدقيقة التي تستخدمها. يتعلم أكثر.
Dragonfly هو بديل Redis الذي يعمل على خفض التكاليف وتعزيز الأداء. تم تصميم Dragonfly للاستفادة الكاملة من قوة الأجهزة السحابية الحديثة وتلبية متطلبات البيانات للتطبيقات الحديثة، وهو يحرر المطورين من حدود مخازن البيانات التقليدية في الذاكرة.
تُستخدم قوائم انتظار المهام كآلية لتوزيع العمل عبر سلاسل العمليات أو الأجهزة.
إن إدخال قائمة انتظار المهام عبارة عن وحدة عمل، تسمى مهمة، ثم تقوم العمليات المنفذة المخصصة بمراقبة قائمة الانتظار باستمرار حتى يتم تنفيذ العمل الجديد.
تتواصل شركة كرفس عبر الرسائل، وعادةً ما تستخدم وسيطًا للتوسط بين العملاء والعاملين. لبدء مهمة، يضع العميل رسالة في قائمة الانتظار، ثم يقوم الوسيط بتسليم الرسالة إلى العامل.
يمكن أن يتكون نظام الكرفس من العديد من العمال والوسطاء، مما يفسح المجال للتوفر العالي والقياس الأفقي.
تم كتابة الكرفس بلغة بايثون، ولكن يمكن تنفيذ البروتوكول بأي لغة. بالإضافة إلى Python، هناك عقدة الكرفس لـ Node.js، وعميل PHP، وgocelery، وgopher-celery لـ Go، وrusty-celery لـ Rust.
يمكن أيضًا تحقيق قابلية التشغيل البيني للغة باستخدام خطافات الويب بطريقة تجعل العميل يضع عنوان URL في قائمة الانتظار ليطلبه العامل.
يعمل إصدار الكرفس 5.5.x على:
هذا هو إصدار الكرفس الذي سيدعم Python 3.8 أو الأحدث.
إذا كنت تستخدم إصدارًا أقدم من Python، فأنت بحاجة إلى تشغيل إصدار أقدم من Celery:
يعد Celery مشروعًا يتمتع بالحد الأدنى من التمويل، لذلك نحن لا ندعم Microsoft Windows ولكن من المفترض أن يعمل. من فضلك لا تفتح أي مشاكل تتعلق بهذا النظام الأساسي.
يستخدم الكرفس عادة مع وسيط الرسائل لإرسال واستقبال الرسائل. تعتبر عمليات نقل RabbitMQ وRedis كاملة الميزات، ولكن هناك أيضًا دعم تجريبي لعدد لا يحصى من الحلول الأخرى، بما في ذلك استخدام SQLite للتطوير المحلي.
يمكن تشغيل الكرفس على جهاز واحد، أو على أجهزة متعددة، أو حتى عبر مراكز البيانات.
إذا كانت هذه هي المرة الأولى التي تحاول فيها استخدام Celery، أو كنت جديدًا على Celery v5.5.x القادم من الإصدارات السابقة، فيجب عليك قراءة البرامج التعليمية للبدء:
الخطوات الأولى مع الكرفس
برنامج تعليمي يعلمك الحد الأدنى المطلوب للبدء مع الكرفس.
الخطوات التالية
نظرة عامة أكثر اكتمالا، تظهر المزيد من الميزات.
يمكنك أيضًا البدء مع Celery باستخدام وسيط نقل مستضاف CloudAMQP. أكبر مزود استضافة لـ RabbitMQ هو الراعي الفخور لـ Celery.
بسيط
الكرفس سهل الاستخدام والصيانة، ولا يحتاج إلى ملفات تكوين .
لديه مجتمع نشط وودود يمكنك التحدث إليه للحصول على الدعم، كما هو الحال في قائمتنا البريدية، أو قناة IRC.
إليك أحد أبسط التطبيقات التي يمكنك إجراؤها:
from celery import Celery app = Celery ( 'hello' , broker = 'amqp://guest@localhost//' ) @ app . task def hello (): return 'hello world'
متاح للغاية
سيعيد العمال والعملاء المحاولة تلقائيًا في حالة فقدان الاتصال أو فشله، ويدعم بعض الوسطاء HA في طريقة النسخ المتماثل الأساسي/الأساسي أو الأساسي/النسخة المتماثلة .
سريع
يمكن لعملية Celery واحدة معالجة ملايين المهام في الدقيقة، مع زمن انتقال ذهابًا وإيابًا أقل من مللي ثانية (باستخدام RabbitMQ، وpy-librabbitmq، والإعدادات المحسنة).
مرن
يمكن توسيع كل جزء من أجزاء الكرفس تقريبًا أو استخدامه بمفرده، وتطبيقات التجميع المخصصة، والمتسلسلات، وأنظمة الضغط، والتسجيل، والمجدولين، والمستهلكين، والمنتجين، وعمليات النقل الوسيطة، وغير ذلك الكثير.
وسائل نقل الرسائل
- RabbitMQ، ريديس، أمازون SQS، جوجل بوب/Sub
التزامن
- شوكة مسبقة، حدث، جيفنت، مفرد ملولب (
solo
)مخازن النتيجة
- أمكب، ريديس
- com.memcached
- SQLAlchemy، جانغو ORM
- أباتشي كاساندرا، IronCache، Elasticsearch
- جوجل التخزين السحابي
التسلسل
- مخلل , json , yaml , msgpack .
- زليب ، ضغط bzip2 .
- توقيع رسالة التشفير.
من السهل دمج الكرفس مع أطر عمل الويب، وبعضها يحتوي أيضًا على حزم تكامل:
جانغو ليست هناك حاجة هرم Pyramid_Celery أبراج أبراج الكرفس قارورة ليست هناك حاجة web2py web2py-الكرفس اعصار اعصار الكرفس FastAPI ليست هناك حاجة
حزم التكامل ليست ضرورية تمامًا، لكنها يمكن أن تجعل التطوير أسهل، وفي بعض الأحيان تضيف روابط مهمة مثل إغلاق اتصالات قاعدة البيانات عند fork
.
تتم استضافة أحدث الوثائق في Read The Docs، والتي تحتوي على أدلة المستخدم والبرامج التعليمية ومرجع API.
يمكنك تثبيت Celery إما عبر Python Package Index (PyPI) أو من المصدر.
للتثبيت باستخدام pip
:
$ تثبيت النقطة -U الكرفس
يحدد Celery أيضًا مجموعة من الحزم التي يمكن استخدامها لتثبيت Celery والتبعيات لميزة معينة.
يمكنك تحديد هذه العناصر في متطلباتك أو في سطر أوامر pip
باستخدام الأقواس. يمكن تحديد حزم متعددة عن طريق الفصل بينها بفواصل.
تثبيت النقطة $ "الكرفس [redis]" $ تثبيت النقطة "الكرفس [redis,auth,msgpack]"
الحزم التالية متوفرة:
celery[auth] : | لاستخدام برنامج تسلسل الأمان auth . |
---|---|
celery[msgpack] : | لاستخدام المسلسل msgpack. |
celery[yaml] : | لاستخدام برنامج yaml التسلسلي. |
celery[eventlet] : | لاستخدام تجمع eventlet . |
---|---|
celery[gevent] : | لاستخدام تجمع gevent . |
celery[amqp] : | لاستخدام مكتبة RabbitMQ amqp بيثون. |
---|---|
celery[redis] : | لاستخدام Redis كوسيلة لنقل الرسائل أو كواجهة خلفية للنتيجة. |
celery[sqs] : | لاستخدام Amazon SQS كوسيلة لنقل الرسائل. |
celery[tblib ]: | لاستخدام ميزة |
celery[memcache] : | لاستخدام Memcached كواجهة خلفية للنتيجة (باستخدام |
celery[pymemcache] : | لاستخدام Memcached كواجهة خلفية للنتيجة (تطبيق Python خالص). |
celery[cassandra] : | لاستخدام Apache Cassandra/Astra DB كنتيجة خلفية مع برنامج تشغيل DataStax. |
celery[azureblockblob] : | لاستخدام Azure Storage كواجهة خلفية نتيجة (باستخدام |
celery[s3] : | لاستخدام S3 Storage كنتيجة خلفية. |
celery[gcs] : | لاستخدام Google Cloud Storage كنتيجة خلفية. |
celery[couchbase] : | لاستخدام Couchbase كنتيجة خلفية. |
celery[arangodb] : | لاستخدام ArangoDB كواجهة خلفية للنتيجة. |
celery[elasticsearch] : | لاستخدام Elasticsearch كنتيجة خلفية. |
celery[riak] : | لاستخدام Riak كنتيجة خلفية. |
celery[cosmosdbsql] : | لاستخدام Azure Cosmos DB كنتيجة خلفية (باستخدام |
celery[zookeeper] : | لاستخدام Zookeeper كوسيلة لنقل الرسائل. |
celery[sqlalchemy] : | لاستخدام SQLAlchemy كنتيجة خلفية ( مدعوم ). |
celery[pyro] : | لاستخدام نقل الرسائل Pyro4 ( تجريبي ). |
celery[slmq] : | لاستخدام نقل قائمة انتظار الرسائل SoftLayer ( تجريبي ). |
celery[consul] : | لاستخدام متجر Consul.io Key/Value كوسيلة لنقل الرسائل أو الواجهة الخلفية للنتائج ( تجريبية ). |
celery[django] : | يحدد أقل إصدار ممكن لدعم جانغو. ربما لا ينبغي عليك استخدام هذا في متطلباتك، فهو هنا لأغراض إعلامية فقط. |
celery[gcpubsub] : | لاستخدام Google Pub/Sub كوسيلة لنقل الرسائل. |
قم بتنزيل أحدث إصدار من Celery من PyPI:
https://pypi.org/project/celery/
ويمكنك تثبيته عن طريق القيام بما يلي:
$ القطران xvfz celery-0.0.0.tar.gz $ قرص الكرفس-0.0.0 بناء $ بيثون setup.py # تثبيت بيثون.py
يجب تنفيذ الأمر الأخير كمستخدم مميز إذا كنت لا تستخدم Virtualenv حاليًا.
يتطلب إصدار تطوير Celery أيضًا إصدارات تطوير kombu
و amqp
و billiard
و vine
.
يمكنك تثبيت أحدث لقطة منها باستخدام أوامر النقطة التالية:
تثبيت النقطة $ https://github.com/celery/celery/zipball/main#egg=celery تثبيت النقطة $ https://github.com/celery/billiard/zipball/main#egg=billiard تثبيت النقطة $ https://github.com/celery/py-amqp/zipball/main#egg=amqp تثبيت النقطة $ https://github.com/celery/kombu/zipball/main#egg=kombu تثبيت النقطة $ https://github.com/celery/vine/zipball/main#egg=vine
يرجى الاطلاع على قسم المساهمة.
للمناقشات حول استخدام الكرفس وتطويره ومستقبله، يرجى الانضمام إلى القائمة البريدية لمستخدمي الكرفس.
تعال ودردش معنا على IRC. قناة #celery موجودة على شبكة Libera Chat.
إذا كان لديك أي اقتراحات أو تقارير أخطاء أو إزعاجات، فيرجى الإبلاغ عنها إلى متتبع المشكلات لدينا على https://github.com/celery/celery/issues/
https://github.com/celery/celery/wiki
هذا المشروع موجود بفضل جميع الأشخاص الذين ساهموا فيه. يحدث تطوير الكرفس في GitHub: https://github.com/celery/celery
نشجعك بشدة على المشاركة في تطوير الكرفس. إذا كنت لا تحب GitHub (لسبب ما)، فنحن نرحب بك لإرسال تصحيحات منتظمة.
تأكد أيضًا من قراءة قسم المساهمة في الكرفس في الوثائق.
شكرا لجميع الداعمين لدينا! [كن داعمًا]
ادعم هذا المشروع من خلال أن تصبح راعياً. سيظهر شعارك هنا مع رابط لموقعك على الويب. [كن راعيًا]
تم ترخيص هذا البرنامج بموجب ترخيص BSD الجديد. راجع ملف LICENSE
الموجود في دليل التوزيع العلوي للحصول على نص الترخيص الكامل.