寻找有关如何将python水泥框架(http://builtoncement.com/)与asyncio(https://docs.python.org/3.4/library/asyncio.html)结合使用的指导。
我有一个基于asyncio的事件引擎并正在运行,并且对进度和简单性感到非常满意。表现也不错。
现在,我需要添加更复杂的处理程序,钩子和插件,并浏览我发现的各种选项,水泥似乎是最喜欢的并且也得到了很好的维护。
我喜欢它处理日志,配置,参数,输出和插件的事实。
但是,我找不到将asyncio与水泥框架一起使用的单个示例。
无论是否可行,建议甚至使用水泥替代品(与asyncio均能很好地使用),任何观点都将受到欢迎。
谢谢!
对于大多数零件而言,将水泥与asyncio集成起来非常容易。我发现的最好方法是使用您自己的实例扩展CementApp并利用setup()获取循环并在需要时注册其他线程池。
注册_post_run钩子使您可以执行初始化生成器的run_until_complete
在注册_pre_close挂钩时,您可以完成所有未完成的asyncio任务。
_init()和_finish()协程完成其余的工作,并且主应用程序逻辑可以归结为:
with myApp('myAppName') as app:
app.run()
app.log.info('Starting MyApp')
try:
app.run_forever()
except (KeyboardInterrupt, SystemExit, CaughtSignal):
app.log.info('Shutting down MyApp')
app.close()
您可以在此处找到一个有效的示例:https : //github.com/fxstein/SentientHome/blob/master/engine/event.engine.py
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句