Какая библиотека/фреймворк модели Актера для Python и Erlang?

Я ищу легкую в освоении библиотеку или фреймворк для Python 2.x. Я пробовал Candygram и Twisted, но они мне не понравились. Я бы хотел что-то, что можно было бы легко расширить до suppero Greenlet (= Python без стека).

  • Candygram слишком стар.
  • Скрученный — это слишком сложно.
  • Gevent: неясно, может ли он поддерживать модель Актеров.

Что ты посоветуешь?


person Community    schedule 06.08.2010    source источник
comment
Я ничего не знаю о Candygram, но я думал, что Twisted больше ориентирован на работу с сетью, чем на параллелизм на основе актеров.   -  person Daniel Yankowsky    schedule 06.08.2010
comment
Лучшие актеры, подобные Erlang, реализованы в Erlang. Выполняйте параллельно ориентированную работу в Erlang и оставляйте остальную работу на python через порты. Я бы сделал всю работу в Erlang, но если кто-то думает, что Python лучше для любой задачи, это его вкус.   -  person Hynek -Pichi- Vychodil    schedule 07.08.2010
comment
Я немного знаком с Erlang, но я бы предпочел использовать Python. Мне нужно не то же самое, что я делаю в Erlang в Python, а также не так, как   -  person daitangio    schedule 07.08.2010


Ответы (6)


Чтобы сделать актеров с gevent, используйте подкласс Greenlet со встроенным gevent.queue Экземпляр .Queue, используемый как почтовый ящик. Чтобы прочитать сообщение из папки «Входящие», просто get() из очереди. Чтобы отправить сообщение актеру, поместите его в очередь этого актера.

Прочитайте о создании подклассов Greenlet здесь.

Если вам нужна помощь в написании класса Actor, не стесняйтесь спросить в списке рассылки.

person Community    schedule 08.08.2010

Ознакомьтесь с pulsar, это параллельный фреймворк для python, который использует модель акторов в качестве источника параллельное выполнение.

person Community    schedule 13.08.2013
comment
Похоже, что Pulsar поддерживается очень хорошо, а также поддерживает функции asyncio Python3. - person user1496984; 21.08.2014

Я знаю, что этот вопрос немного устарел, но вот еще один ресурс актера для python:

https://github.com/godaddy/Thespian

Документацию можно найти здесь:

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

ИЗМЕНИТЬ:

С тех пор основной автор этой библиотеки покинул GoDaddy и разветвил репозиторий:

https://github.com/kquick/Thespian

Новые документы можно найти здесь:

http://thespianpy.com/doc/

person Community    schedule 13.10.2015

ПАРЛИ и Pykka перечислены на этой странице модели актера Википедии, так что вы можете хочу изучить один из них.

Pykka активно разрабатывается (версия 1.0.1 выпущена в декабре 2012 г.), тогда как PARLEY не выпускалась с 2007 г. (и до сих пор указана как бета-версия). Pykka утверждает, что вдохновлен Akka только в названии, а не просто в порте Python.

person Community    schedule 08.01.2013
comment
Что меня смущает, так это то, что в Erlang актеры очень часто отправляют сообщения сами себе. В Pykka неясно, как объект получает ссылку на себя. - person fatuhoku; 02.09.2013
comment
Не знаю, насколько нова эта функция, но Pykka 1.2.0 поддерживает self.actor_ref. Это прямо упоминается в разделе прокси документации как способ актер, чтобы запланировать будущую работу с самим собой, поэтому я думаю, что это сильно поддерживается. - person Jayson; 21.02.2014
comment
похоже пикка уже не активно развивается - person Andy Hayden; 30.10.2016
comment
Последний коммит в марте 2019 года, похоже, он все еще находится в разработке. ;) - person andreas; 29.04.2019

В этом руководстве есть простой и рабочий пример для акторов с gevent. В принципе все именно так, как уже описал Денис.

person Community    schedule 23.02.2012

Я бы посмотрел на это: https://bitbucket.org/fzzzy/python-actors

Это в значительной степени прямой клон модели актора Erlang с «сохраненной» очередью сообщений, ссылками и всем остальным.

person Community    schedule 07.05.2012