Flask中启动其他线程,出现多个进程的问题,执行两遍代码

在Flask应用启动前开启子线程导致进程增多,甚至产生僵尸进程。问题源于`app.run()`默认使用Werkzeug,开启子进程以实现代码变动自动重启。解决方案包括设置`debug=False`或`debug=True, use_reloader=False`,以避免额外子进程的生成。" 78734289,7385164,理解Linux系统调用与标准库函数,"['Linux', '操作系统', '文件系统', 'C语言编程', '文件操作']
摘要由CSDN通过智能技术生成

在启动Flash app之前,启动一个子线程,以便进行其他的任务处理:

当启动后,ps查询会出现多个进程:

多次执行启动和kill,还会出现多个僵尸进程

经测试,将app.debug = True注释后,问题解决。

其实根本原因为:
app.run()默认启用Werkzeug,生成一个子进程,作用是当代码有变动的时候自动重启
debug=Flase 后会关闭此功能
也可以使用debug=True,use_reloader=False的组合,启用"代码有变动自动重启"的功能,但不会生成子进程了。

避免生成子进程的方法:
1. app.run(debug=False)
2. app.run(debug=True, use_reloader=False)
 

  参考 https://blog.csdn.net/jacke121/article/details/83210785

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值