44 votes

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

Je suis à la recherche d'une bibliothèque ou d'un framework Actor facile à apprendre pour Python 2.x. J'ai essayé Candygram et Twisted mais je ne les ai pas aimés. J'aimerais quelque chose qui soit facile à étendre pour supporter Greenlet (= stackless python).

  • Candygram est trop vieux.
  • Twisted est trop compliqué.
  • Gevent : il n'est pas clair s'il peut supporter le modèle Actors.

Que suggérez-vous ?

19voto

Denis Bilenko Points 2975

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

Pour en savoir plus sur la sous-classification de Greenlet, cliquez ici .

Si vous avez besoin d'aide pour rédiger la classe Acteur, n'hésitez pas à demander à la liste de diffusion .

14voto

lsbardel Points 580

Vérifiez pulsar Il s'agit d'un cadre de travail concurrent pour Python qui utilise le modèle d'acteur comme source d'exécution parallèle.

5voto

David Points 596

PARLEY y Pykka sont répertoriés sur ce site Page du modèle d'acteur de Wikipedia donc vous pourriez vouloir regarder dans l'un d'eux.

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

3voto

jrydberg Points 301

J'y jetterais un coup d'oeil : https://bitbucket.org/fzzzy/python-actors

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

3voto

Michael Points 1462

Este tutoriel a un exemple simple et fonctionnel pour les acteurs avec gevent. En gros, c'est exactement ce que Denis a déjà décrit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X