aiomultiprocess Pool 实现task reload 的一些说明
aiomultiprocess Pool 有一些默认参数,与worker 模式不同的是进程池,所以模块会有cache 的问题,有一些方法可以解决
一些参数
- maxtasksperchild
当为1的时候会reload,但是就失去进程池的价值了,可以按需配置一个合理的参数
- 通过变动动态创建Pool
通过检测模块的变动,按需动态创建
- 按需每次都reload 模块(进程task 中)
async def do_task(module_name, task_name):
module = importlib.import_module(module_name)
ns = Collection.from_module(module)
importlib.reload(module)
说明
以上是一些简单说明,进程池很不错,但是如果需要reload 场景,就需要一些其他配置了
参考资料
https://aiomultiprocess.omnilib.dev/en/latest/api.html#process-pools
https://aiomultiprocess.omnilib.dev/en/latest/guide.html#process-pools
浙公网安备 33010602011771号