web-dev-qa-db-ja.com

pythonとErlangのようなActorモデルライブラリ/フレームワーク?

Python 2.xの学習しやすいActorライブラリまたはフレームワークを探しています。CandygramとTwistedを試しましたが、それらは好きではありませんでした。 suppero Greenlet(=スタックレスpython)に拡張するのは簡単です。

  • キャンディグラムが古すぎます。
  • Twistedは複雑すぎます。
  • Gevent:Actorsモデルをサポートできるかどうかは不明です。

何を指示してるんですか?

45
daitangio

gevent でアクターを作成するには、埋め込み gevent.queue.Queue インスタンスを持つ Greenlet サブクラスをインボックスとして使用します。受信トレイからメッセージを読み取るには、キューから get() を実行します。メッセージをアクターに送信するには、 put をそのアクターのキューに入れます。

Greenletのサブクラス化についてはこちら

Actorクラスの作成についてサポートが必要な場合は、お気軽に メーリングリストに質問してください です。

19
Denis Bilenko

チェックアウト pulsar 、これは、並列実行のソースとしてアクターモデルを使用するpythonの並行フレームワークです。

14
Luca Sbardella

私はこの質問が少し古いことを知っていますが、ここにpythonの別の俳優リソースがあります:

https://github.com/godaddy/Thespian

ドキュメントはここにあります:

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

[〜#〜]編集[〜#〜]

このライブラリの主な作者はそれ以来GoDaddyを去り、レポをフォークしました:

https://github.com/kquick/Thespian

新しいドキュメントはここにあります:

http://thespianpy.com/doc/

9
beardedeagle

[〜#〜] parley [〜#〜] および Pykka はこれにリストされています Wikipedia Actor Modelページ なので、1つを調べてください。それらの。

Pykkaは積極的に開発されているようですが(2012年12月にリリースされた1.0.1)、PARLEYは2007年以降リリースされていません(まだベータ版としてリストされています)。 Pykkaは Akka の影響を受けていると主張していますが、名前だけではpythonポートではありません。

5
David

この tutorial には、geventを使用する俳優のためのシンプルで実用的な例があります。基本的には、Denisがすでに説明したとおりです。

3
Michael

私はこれを見てみましょう: https://bitbucket.org/fzzzy/python-actors

これは、Erlangアクターモデルのほぼそのままのクローンであり、「保存された」メッセージキュー、リンクなどがすべて含まれています。

3
jrydberg