2013-09-29 4 views
-2

저는 XMPP를 파이썬으로 사용하고 있습니다. XMPP를 통해 메시지를 수신 대기하는 새로운 프로세스를 생성하고 싶습니다. 나는 메시지를 듣기 위해 새로운 프로세스를 생성하기 위해 gevent를 사용할 것이라고 생각했습니다.SleekXMPP 및 Gevent

나는 단순한 SQLite3 데이터베이스에 메시지를 쓰려고하는데, 무슨 일이 일어나고 있는지 추적하기 위해 메시지를 한 사용자 만 데이터베이스에 씁니다. 나는 단지 방공이 어떻게 작동하는지 알지 못한다고 확신한다.

다음은 코드입니다. https://gist.github.com/simonbowen/6756511

답변

0

gevent monkey-patching을 활성화해야합니다. 그것은 SleekXMPP 라이브러리에서 'non-blocking'과 같은 파이썬 코드를 만들 것입니다. 그러면 다중 그린렛 을 병렬로 처리 할 수있게 될 것입니다. 그냥 gevent 가져 오기 후 다음 줄을 추가합니다 :

from gevent import monkey; monkey.patch_all() 

그러나, 그것은 보인다 내가 여전히 차단됩니다 sqlite3를 호출에, 나는 을 가정하기 때문에 당신이 가고 싶은 경우 C. 로 작성된 파이썬 확장 모듈이다 geent-friendly 구현을 구현하려면 gevent threadpool을 사용하는 등 별도의 스레드에서 호출을 sqlite3으로해야합니다.