web-dev-qa-db-fra.com

Quelle bibliothèque de modèles d'acteur / framework pour python et Erlang-like?

Je recherche une bibliothèque ou un framework d'acteur facile à apprendre pour Python 2.x. J'ai essayé Candygram et Twisted mais je ne les aimais pas. J'aimerais quelque chose qui sera facile à étendre à suppero Greenlet (= python sans pile).

  • Candygram est trop vieux.
  • Tordu est trop compliqué.
  • Gevent: on ne sait pas s'il peut prendre en charge le modèle des acteurs.

Que suggérez-vous?

45
daitangio

Pour créer des acteurs avec gevent , utilisez une sous-classe Greenlet avec l'instance intégrée gevent.queue.Queue utilisée comme boîte de réception. Pour lire un message dans la boîte de réception, il suffit de get () dans la file d'attente. Pour envoyer un message à un acteur, mettre dans la file d'attente de cet acteur.

Lisez à propos de la sous-classification de Greenlet ici .

Si vous avez besoin d'aide pour écrire la classe d'acteur, n'hésitez pas à demandez la liste de diffusion .

19
Denis Bilenko

Découvrez pulsar , c'est un framework simultané pour python qui utilise le modèle d'acteur comme source d'exécution parallèle.

14
Luca Sbardella

Je sais que cette question est un peu datée, mais voici une autre ressource d'acteur pour python maintenant:

https://github.com/godaddy/Thespian

La documentation peut être trouvée ici:

http://godaddy.github.io/Thespian/doc/

[~ # ~] modifier [~ # ~] :

L'auteur principal de cette bibliothèque a depuis quitté GoDaddy et a bifurqué le dépôt:

https://github.com/kquick/Thespian

De nouveaux documents peuvent être trouvés ici:

http://thespianpy.com/doc/

9
beardedeagle

PARLEY et Pykka sont répertoriés sur ce page Modèle d'acteur Wikipedia donc vous voudrez peut-être en examiner un de celles.

Pykka semble être activement développé (1.0.1 publié en décembre 2012) tandis que PARLEY n'a pas eu de version depuis 2007 (et est toujours répertorié comme bêta). Pykka prétend être inspiré par Akka uniquement dans le nom n'est pas simplement un port python.

5
David

Ce tutoriel a un exemple simple et fonctionnel pour les acteurs avec gevent. Fondamentalement, c'est exactement comme Denis l'a déjà décrit.

3
Michael

Je voudrais jeter un oeil à ceci: https://bitbucket.org/fzzzy/python-actors

C'est à peu près un clone direct du modèle d'acteur d'Erlang, avec une file d'attente de messages "enregistrés", des liens et tout.

3
jrydberg