flask中使用ProcessPoolExecutor来实现异步,导致产生很多子进程如何退出?
相关代码:
...
from concurrent.futures import ProcessPoolExecutor
executor = ProcessPoolExecutor(2)
def copy_use_pool():
...
一个耗时很长的任务
...
@app.route('/copy')
def copy():
executor.submit(copy_use_pool)
time.sleep(0.5)
return redirect(url_for('index'))
如代码所示,请求copy
接口时,使用ProcessPoolExecutor
提交一个长耗时的copy_use_pool
,这样确实实现了异步,但每请求一次,后台的进程就增加一个,copy
完成了不退出。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,你的app是不是以多进程方式run起来的?