healthcheck提供者与http服务器的微型异步实现

aio-tiny-healthcheck的Python项目详细描述


所有微小健康检查

PyPIBuild StatusBuild Status

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java需要建议如何打印ArrayList的剩余容量   ApachePOI如何在java中生成多级(行和列)透视表   java如何关闭静态线程池?   日期查询使用_id,但不使用日期值MongoDB   java如何编写记录参数和返回值的拦截器?   java在安卓中使用哪种音频格式来存储录音   Java/Python在C/C++中访问的动态链接库?   来自文本文件的java hashmap字数   java为什么onClick不启动拖动侦听器,但长时间单击工作正常?[安卓]   Java字符串到字节数组,缺少特殊字符§   java Spring捕获所有响应类型   序列化Java枚举:从文件反序列化任意枚举   java将jar包装为。用于部署的应用程序(OSX)和(.exe)?   java如何使TestNG向testngcustomsuite添加参数。xml?   java动态更改操作栏中的项目标题   java为什么我的2D数组乘法输出不正确?   java我在打开和关闭键时出错   JavaEclipse:“保存操作”选项中的导入+导出操作   Eclipse无法打开,给了我一个很长的错误。[爪哇]   java Hibernate搜索使用字段点符号“a.b.c”时,我应该用@Facet注释哪些字段