В приложении Flask у меня есть URL-адрес для вызова потока Python через:
@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" (запускаемый как демон) обновлялся с новой информацией userProfile при каждом его вызове. Однако, когда я помещаю «enableZMQ ()» в маршрут «startZMQListener ()», он просто создает дубликат, и они оба запускаются одновременно, что приводит к путанице.
Есть идеи, как с этим справиться?