6 Home
Yury Selivanov edited this page 2016-07-27 11:12:13 -04:00

Q & A

How to use uvloop in an asyncio application?

Just install the uvloop event policy:

import asyncio
import uvloop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())

How to use uvloop with aiohttp+gunicorn?

You have to use a special gunicorn worker class that aiohttp bundles since 0.22.0:

$ gunicorn ... --worker-class aiohttp.worker.GunicornUVLoopWebWorker

Starting your application this way will automatically make asyncio.get_event_loop() to return a uvloop event loop. There is no need to manually install uvloop policy.

How to use uvloop with Tornado?

Install uvloop event policy before calling AsyncIOMainLoop().install():

from tornado.platform.asyncio import AsyncIOMainLoop
import asyncio
import uvloop

asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())
AsyncIOMainLoop().install()
asyncio.get_event_loop().run_forever()