Hello Ashkan, Gunicorn can handle async from what I read < http://gunicorn.org/design.html >. From the docs...
Sync Workers <http://gunicorn.org/design.html#contents> The most basic and the default worker type is a synchronous worker class that handles a single request at a time. This model is the simplest to reason about as any errors will affect at most a single request. Though as we describe below only processing a single request at a time requires some assumptions about how applications are programmed. Async Workers <http://gunicorn.org/design.html#contents> The asynchronous workers available are based on Greenlets<http://bitbucket.org/ambroff/greenlet>(via Eventlet <http://eventlet.net/> and Gevent <http://gevent.org/>). Greenlets are an implementation of cooperative multi-threading for Python. In general, an application should be able to make use of these worker classes with no changes. Tornado Workers <http://gunicorn.org/design.html#contents> There's also a Tornado worker class. It can be used to write applications using the Tornado framework. Although the Tornado workers are capable of serving a WSGI application, this is not a recommended configuration. Of course there may be other technical reason to not use Gunicorn but if you're looking for something that eases deployment, give it a go! Toodle-loooooooooooo.......... creecode -- You received this message because you are subscribed to the Google Groups "Django users" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/otf8gw9roOMJ. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.