Re: [gevent] Using greenlets in 2 separate threads

165 views
Skip to first unread message

AM

unread,
Oct 31, 2012, 12:01:37 PM10/31/12
to gev...@googlegroups.com, Viatcheslav Gachkaylo
On 10/30/2012 11:25 PM, Viatcheslav Gachkaylo wrote:
> Hello,
>
> I need to run 2 servers communicating with each other in a single
> process. One uses gevent event loop, the other one uses tornado.
> Now I run the 2nd server in a separate threading.Thread. However I
> wish to use greenlets in the code of this second server. Will this
> cause any troubles?
> What is a simple yet effective alternative in this situation? How hard
> it is to make tornado use gevent and unite the servers' run loops
> together?
> I don't think dividing into 2 different processes with a proper
> communication between them is an appropriate solution.
>
> The first server is gevent.wsgi.WSGIServer, the second one
> is https://github.com/thisismedium/python-xmpp-server/
>
> --
> Thank you,
> Viatcheslav Gachkaylo
> Crystalnix

Hi Vitaly.

If you want to run two servers in the same process, simply start the
servers using start (not serve_forever) and wait on the two greenlet
objects you get back. You will have to take care that when one of them
terminates the other one terminates too, or else you may end up with
only one server running.

Re: tornado, it uses its own event loop based around the same apis that
gevent uses but at a much lower level. In theory you might be able to
make it work with greenlets, but you may end up recreating gevent :)

I am wondering why two processes are not a good model?

HTH
AM

Viatcheslav Gachkaylo

unread,
Nov 1, 2012, 8:12:49 AM11/1/12
to AM, gev...@googlegroups.com
Hello, AM

In the end I decided to use multiprocessing to launch 2 separate processes with Pipe communication.

Thanks for your answer,
Viatcheslav Gachkaylo
Crystalnix
Reply all
Reply to author
Forward
0 new messages