2010-08-06 2 views
38

배우기 쉬운 배우 라이브러리 또는 Python 2.x 용 프레임 워크를 찾고 있습니다. 나는 Candygram과 Twisted를 시도했지만 나는 그들을 좋아하지 않았다. 필자는 Greenlet (= Stackless Python)을 지원하기 쉽도록하고 싶습니다.파이썬과 Erlang과 같은 액터 모델 라이브러리/프레임 워크는 무엇입니까?

  • Candygram이 너무 오래되었습니다.
  • 꼬인 너무 복잡합니다.
  • Gevent : 액터 모델을 지원할 수 있는지 여부가 명확하지 않습니다.

무엇을 제안합니까?

+3

내가 Candygram에 대해 아무것도 몰라,하지만 나는 트위스트 더 지향적 인 줄 알았는데 행위자 기반 동시성보다 네트워킹에 대한 관심이 높습니다. –

+1

얼랭 (Erlang)과 같은 최고의 배우들은 얼랭 (Erlang)에서 구현됩니다. Erlang에서 동시 지향적 인 작업을 수행하고 나머지 작업은 포트를 통해 Python으로 남겨 둡니다. 나는 Erlang에서 전체 작업을 할 것이지만 누군가 Python이 어떤 일에 대해서 더 좋다고 생각한다면 그의 취향이다. –

+0

나는 Erlang이 약간 흔들리는 것을 알고 있지만 파이썬을 선호한다. 파이썬의 얼랑 (Erlang)에서와 똑같은 일을 할 필요가없고, 똑같은 방식으로도 할 필요가 없다. – daitangio

답변

18

액터를 으로 만들려면 Greenlet 서브 클래스를 인스턴스를받은 편지함으로 사용하십시오. 받은 편지함에서 메시지를 읽으려면 대기열에있는 get()을 사용하면됩니다. 액터에게 메시지를 보내려면 해당 액터의 큐에 put 메시지를 보내십시오.

Read about subclassing Greenlet here.

Actor 클래스를 작성하는 데 도움이 필요하면 ask the mailing list으로 자유롭게 이동하십시오.

2

tutorial에는 gevent가있는 액터에 대한 간단한 예제가 있습니다. 기본적으로 Denis가 이미 설명한 것과 정확히 같습니다.

5

PARLEYPykka은이 Wikipedia Actor Model page에 나열되어 있으므로 그 중 하나를 살펴볼 수 있습니다.

2012 년 12 월에 1.0.1이 출시 된 Pykka는 활발하게 개발 된 반면 PARLEY는 2007 년부터 출시되지 않았으며 아직 베타 버전으로 등록되어 있습니다. Pykka는 Akka에 의해서만 insicired인데, 이름은 단지 파이썬 포트가 아닙니다.

+0

얼랑 (Erlang)에서 나는 혼란스러워하는 것은 배우들이 스스로에게 메시지를 보내는 것이 일반적이라는 것이다. Pykka에서는 객체가 어떻게 자신의 참조를 얻는 지 명확하지 않습니다. – fatuhoku

+1

이 기능의 새로운 기능은 확실하지 않지만 Pykka 1.2.0은 self.actor_ref를 지원합니다. 이것은 배우가 "미래의 작업 일정을 계획하는"방법으로 문서의 [프록시 섹션] (http://www.pykka.org/ko/latest/api/#proxies)에서 명시 적으로 언급되어 있으므로 그것이 강력하게 지원된다고 상상해보십시오. – Jayson

+0

pykka가 더 이상 활발하게 개발되지 않은 것처럼 보입니다 –