Skip to content

Instantly share code, notes, and snippets.

@rahulmr
Forked from tenuki/multi_uvicorn.py
Created March 9, 2021 03:16
Show Gist options
  • Save rahulmr/fdb9aa53f53dc82528ff88a0ad2fd4b0 to your computer and use it in GitHub Desktop.
Save rahulmr/fdb9aa53f53dc82528ff88a0ad2fd4b0 to your computer and use it in GitHub Desktop.
How to run multiple uvicorn server apps in the same process (thanks @a-d-j-i )
##
## How to run multiple uvicorn server apps in the same process
##
import asyncio
from uvicorn import Server, Config
class MyServer(Server):
async def run(self, sockets=None):
self.config.setup_event_loop()
return await self.serve(sockets=sockets)
async def run():
apps = []
for cfg in configList:
config = Config("srcs.myapp:app", host="0.0.0.0",
port=cfg["port"])
server = MyServer(config=config)
apps.append(server.run())
return await asyncio.gather(*apps)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment