Как заменить существующий поток Python при создании экземпляра дубликата? - PullRequest
0 голосов
/ 08 мая 2018

В приложении 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 ()», он просто создает дубликат, и они оба запускаются одновременно, что приводит к путанице.

Есть идеи, как с этим справиться?

...