healthcheck提供者与http服务器的微型异步实现
aio-tiny-healthcheck的Python项目详细描述
所有微小健康检查
healthcheck提供程序和服务器的微型异步实现
安装
pip install aio-tiny-healthcheck
用法
默认情况下,如果所有检查都成功完成,则检查器返回200,反之则返回500。
与aiohttp一起使用
fromaiohttpimportwebfromaio_tiny_healthcheck.checkerimportCheckerdefsome_sync_check():returnTrueasyncdefsome_async_check():returnFalsehealthcheck_provider=Checker()healthcheck_provider.add_check('sync_check_true',some_async_check)healthcheck_provider.add_check('async_check_false',some_async_check)app=web.Application()app.router.add_get('/healthcheck',healthcheck_provider.aiohttp_handler)web.run_app(app)
与SANIC一起使用
fromsanicimportSanicfromsanic.responseimportjsonfromaio_tiny_healthcheck.checkerimportCheckerapp=Sanic()defsome_sync_check():returnTrueasyncdefsome_async_check():returnFalsehealthcheck_provider=Checker(success_code=201,fail_code=400)healthcheck_provider.add_check('sync_check_true',some_async_check)healthcheck_provider.add_check('async_check_false',some_async_check)@app.route("/healthcheck")asyncdeftest(request):hc_response=healthcheck_provider.check_handler()returnjson(hc_response.body,status=hc_response.code)if__name__=="__main__":app.run(host="0.0.0.0",port=8000)
在并发模式下使用
如果在执行流中已经有一些阻塞操作,则应该在后台运行healthcheck。 所以,您可以使用内置服务器来实现这一点。
fromaio_tiny_healthcheck.checkerimportCheckerfromaio_tiny_healthcheck.http_serverimportHttpServerimportasyncioasyncdefsome_long_task():awaitasyncio.sleep(3600)defsome_sync_check():returnTrueasyncdefsome_async_check():returnTrueaio_thc=Checker()hc_server=HttpServer(aio_thc,path='/health',host='localhost',port=9090)aio_thc.add_check('sync_check_true',some_async_check)aio_thc.add_check('async_check_false',some_async_check)asyncdefmain():# Run healthcheck concurrentlyasyncio.create_task(hc_server.run())# Run long taskawaitsome_long_task()if__name__=='__main__':loop=asyncio.get_event_loop()loop.run_until_complete(main())
健康检查实用程序
python -m aio_tiny_healthcheck http://localhost:9192/healthcheck
对于在没有外部依赖项(如curl)的情况下运行健康检查非常有用。
默认情况下,并发服务器和运行状况检查实用程序正在工作
具有端口和查询路径http://localhost:8000/healthcheck
。
因此,如果运行并发服务器时没有using参数,则还可以运行该实用程序
没有参数python -m aio_tiny_healthcheck
。