Подтвердить что ты не робот

Какая библиотека/структура модели Actor для python и Erlang-like?

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

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

Что вы предлагаете?

4b9b3361

Ответ 1

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

Читайте о подклассе Greenlet здесь.

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

Ответ 2

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

Ответ 3

PARLEY и Pykka указаны на этой странице модели актера Wikipedia, чтобы вы могли заглянуть в один из них.

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

Ответ 4

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

https://github.com/godaddy/Thespian

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

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

ИЗМЕНИТЬ

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

https://github.com/kquick/Thespian

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

http://thespianpy.com/doc/

Ответ 5

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

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

Ответ 6

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