python - 实例化重复时如何替换现有的Python线程?
问题描述
在 Flask 应用程序上,我有一个用于通过以下方式调用 python 线程的 URL 路由:
@mod.route('/api/start-zmq-listener')
def startZMQListener():
try:
# get new user profile
userProfile = user.findUser('test')
thread = threading.Thread(target=enableZMQ, kwargs={
'username': userProfile['username'],
'userEmail': userProfile['email'],
'userPhone': userProfile['phone'],
'notifications': userProfile['notifications']
})
thread.daemon = True
thread.start()
print (threading.enumerate())
return success_response('ok')
except Exception as e:
return error_response(e)
这会调用“enableZMQ”函数:
def enableZMQ(username, userEmail, userPhone, notifications):
while True:
etc...
我希望现有的“enableZMQ”while 循环(作为守护程序运行)在每次调用时使用新的 userProfile 信息进行更新。但是,当我将“enableZMQ()”放在“startZMQListener()”路由中时,它只会创建一个副本,并且它们都同时运行,这会使事情变得混乱。
关于如何处理这个问题的任何想法?
解决方案
推荐阅读
- c# - 如何在 ASP.net MVC 中填充组合框选定项更改的详细信息字段
- c# - 在这种情况下如何检查链表是否有循环
- dependency-injection - requireBinding 有什么用?
- swift - 从另一个类为 Present ViewController Swift 调用特定函数
- android - 在方向更改期间保存 Recycler 视图的实例
- c# - 在 C# 的循环中使用 lambda 表达式启动任务
- c - SIGIO 什么时候开火?
- sql - 如何更改表
- google-apps-script - 如何在 gmail 插件的谷歌脚本中删除单选按钮的自动选择?
- c - 使用 O_CREAT 时 open 的执行