实例化duplicate时如何替换现有的Python线程?

2024-09-30 22:26:03 发布

您现在位置:Python中文网/ 问答频道 /正文

在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”while循环(作为守护进程运行)在每次调用时都使用新的用户配置文件信息进行更新。然而,当我在“startZMQListener()”路由中放置“enableZMQ()”时,它只会创建一个副本,并且它们都是并发运行的,这会把事情搞砸

有没有办法处理这个问题


Tags: true路由returndefusernamethreadstartnotifications