大佬教程收集整理的这篇文章主要介绍了如何在 Python 模块中使用 __name__ == "__main__" 进行多处理,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在 Flask 服务调用的模块中实现多处理。我知道在 Python 中进行多处理时需要使用保护 if __name__ == "__main__"
。但在那种情况下,我不确定 __name__ == "__main__"
语句应该放在哪里。@H_502_5@
我的第一段代码是 Flask 服务:@H_502_5@
#core_API.py
import flask
import requests
import Process
app = flask.Flask(__name__)
print("starTing app")
@app.route('/query',method=['POST'])
def query():
pl = requests.get_Json()
result = Process.process_query(pl)
return result
if __name__ == "__main__":
app.run(host='0.0.0.0',port=8888)
Process.py
模块以递归方式使用 @H_655_3@multiprocessing:@H_502_5@
#Process.py
import multiprocessing
import multiprocessing.pool
from Node import nodeProcess,aggregate,processpoint
class NoDaemonProcess(multiprocessing.Process):
def _get_daemon(self):
return false
def _set_daemon(self,value):
pass
daemon = property(_get_daemon,_set_daemon)
class MyPool(multiprocessing.pool.Pool):
Process = NoDaemonProcess
def process_query(pl):
if pl['nodes']:
pool = MyPool(multiprocessing.cpu_count())
nodeResults = [pool.apply(sub_process_query,nodE) for node in pl['nodes']]
pool.close()
res = aggregate(nodeResults)
else:
res = processpoint(pl)
return res
def sub_process_query(pl):
return process_query(pl)
此代码运行不正常,我可以看到它运行了多个子进程(无休止地打印“启动应用程序”)。我认为在某处需要使用 if __name__ == '__main__'
语句或解决方法,但我不确定具体如何。@H_502_5@
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的如何在 Python 模块中使用 __name__ == "__main__" 进行多处理全部内容,希望文章能够帮你解决如何在 Python 模块中使用 __name__ == "__main__" 进行多处理所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。