Multiprocessing based aiohttp application runner
Project description
aiohttp-serve
aiohttp-serve
package allows you to run aiohttp.web.Application
on multiple workers/processes
(if for some reason you don't want to use external servers such as gunicorn etc.)
Requirements
- Python >= 3.7
- aiohttp >= 3.7.4
- PyYAML>=5.4.1 (optional)
Installation
pip install aiohttp-serve
Usage
web.py
from aiohttp import web
async def index(request):
return web.Response(body='Hello world')
app = web.Application()
app.router.add_get('/', index)
simple usage:
from aiohttp_serve import serve
if __name__ == '__main__':
serve(
'web:app',
host='127.0.0.1',
port=8080,
workers=4,
)
bind to multiple host/port/path:
from aiohttp_serve import serve
if __name__ == '__main__':
serve(
'web:app',
bind=[
'http://127.0.0.1:80',
'https://127.0.0.1:443',
'unix:/path/to/unix/socket.sock',
],
workers=4,
ssl_certfile='/path/to/cert.crt',
ssl_keyfile='/path/to/key.key',
)
logging:
Just configure logging at module level
import yaml
import logging.config
from aiohttp_serve import serve
with open('./examples/logging.yaml', mode='r') as f:
logging.config.dictConfig(yaml.safe_load(f))
if __name__ == '__main__':
serve(
'web:app',
host='127.0.0.1',
port=8080,
workers=4,
)
of use log_config
arg (dict, .json or .yaml or .conf file)
from aiohttp_serve import serve
if __name__ == '__main__':
serve(
'web:app',
host='127.0.0.1',
port=8080,
workers=4,
log_config='./examples/logging.yaml',
)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aiohttp_serve-0.2.0.tar.gz
(10.7 kB
view hashes)
Built Distribution
Close
Hashes for aiohttp_serve-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e47f0b7b200fcb799a5a20a4019bc83ef704d56074a9ef9f79a5e38f0dd3ecf2 |
|
MD5 | 1c3de5badc5442e92bb1af26797f4bd2 |
|
BLAKE2b-256 | 863c410c1097cd764dca6e544c108bf0b248e77eb4e534b6b7e3e94f3d031a02 |