Search code examples
pythonconcurrencymod-wsgiwsgicherrypy

Best (or appropriate) WSGI server for this Python script? - Python


I'm having quite a problem deciding how to serve a few Python scripts.

The problem is that the basic functionality could be generalized by this:

do_something()
time.sleep(3)
do_something()

I tried various WSGI servers, but they have all been giving me concurrency limitations, as in I have to specify how many threads to use and so on.

I only wish that the resources on the server be used efficiently and liberally.



Any ideas?


Solution

  • Have you checked tornado with its non-blocking asynchronous requests?

    http://www.tornadoweb.org/

    I have never used it though but here is an example from doc:

    class MainHandler(tornado.web.RequestHandler):
        @tornado.web.asynchronous
        def get(self):
            http = tornado.httpclient.AsyncHTTPClient()
            http.fetch("http://friendfeed-api.com/v2/feed/bret",
                       callback=self.async_callback(self.on_response))
    
        def on_response(self, response):
            if response.error: raise tornado.web.HTTPError(500)
            json = tornado.escape.json_decode(response.body)
            self.write("Fetched " + str(len(json["entries"])) + " entries "
                       "from the FriendFeed API")
            self.finish()