On 10/30/2012 11:25 PM, Viatcheslav Gachkaylo wrote:
> 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
> 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
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?