ما هي مكتبة/إطار عمل ممثل من Python و Erlang-like؟ [في الانتظار
-
26-09-2019 - |
سؤال
أنا أبحث عن مكتبة ممثلين سهلة التعلم أو إطار عمل لـ Python 2.x. لقد جربت Candygram و Twisted لكنني لم أحبهم. أود أن يكون من السهل تمديد شيء ما إلى Greenlet (= Python بدون تكديس).
- Candygram قديم جدًا.
- ملتوية معقدة للغاية.
- جيفنت: من غير الواضح ما إذا كان بإمكانه دعم نموذج الجهات الفاعلة.
ماذا تقترح؟
المحلول
لجعل الجهات الفاعلة مع جيفنت, ، إستخدم الأخضر فئة فرعية مع مضمنة gevent.queue.queue مثيل يستخدم باعتباره صندوق الوارد. لقراءة رسالة من صندوق الوارد ، ببساطة احصل على() من قائمة الانتظار. لإرسال رسالة إلى ممثل ، وضع في قائمة انتظار هذا الممثل.
اقرأ عن الفئة الفرعية Greenlet هنا.
إذا كنت بحاجة إلى مساعدة في كتابة فئة الممثل ، فلا تتردد اسأل القائمة البريدية.
نصائح أخرى
الدفع النبض, ، إنه إطار متزامن للبيثون الذي يستخدم نموذج الممثل كمصدر للتنفيذ الموازي.
أعلم أن هذا السؤال مؤرخ قليلاً ولكن هنا مورد آخر ممثل لـ Python الآن:
https://github.com/godaddy/thespian
يمكن العثور على الوثائق هنا:
http://godaddy.github.io/thespian/doc/
تعديل:
لقد ترك المؤلف الرئيسي لهذه المكتبة غواددي وتشويه الريبو:
https://github.com/kquick/thespian
يمكن العثور على مستندات جديدة هنا:
بارلي و بيكا مدرجة في هذا صفحة نموذج ممثل ويكيبيديا لذلك قد ترغب في النظر في واحدة من هؤلاء.
يبدو أن Pykka تم تطويره بنشاط (1.0.1 تم إصداره في ديسمبر 2012) في حين أن Parley لم يحصل على إصدار منذ عام 2007 (ولا يزال مدرجًا باسم Beta). يدعي Pykka أنه مستمر عكا فقط في الاسم ليس مجرد منفذ بيثون.
هذه درس تعليمي لديه مثال بسيط وعمل للممثلين مع جيفنت. في الأساس هو بالضبط كما وصف دينيس بالفعل.
سألقي نظرة على هذا: https://bitbucket.org/fzzzy/python-actors
إنه إلى حد كبير استنساخ مستقيم لنموذج ممثل Erlang ، مع قائمة انتظار الرسائل "المحفوظة" والروابط وكل شيء.