在uWSGI服务器中部署时,Flask线程不工作

2024-04-25 09:56:52 发布

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

我已经在我的烧瓶应用程序中完成了线程。我必须在mysql中的一个单独的表中记录数据,该表必须异步工作。因此,我的主函数收集所有数据,在发送flask响应之前,我调用线程。因此,响应也会及时发送,而且我的线程函数也会在后台运行。在本地flask服务器中运行时,此方法可以正常工作。但当我在uWSGI服务器中部署它时,我需要在uWSGI中启用线程。之后,当调用线程函数时,线程中的数据丢失,变量中没有值

我的邮件功能

@app.route('/', methods=['POST'])
def mainfunction():
    Dictionary['Name'] = 'MyName'
    Dictionary['Age'] = 'MyAge'
    Dictionary['Address'] = 'MyAddress'
    t1 = threading.Thread(target=loadinDBUsingThread, args=(Dictionary,))
    t1.start()
return json.dumps(Dictionary)

我的线程函数

def loadinDBUsingThread(Dictionary):
    localVariable0 = Dictionary['Name']
    localVariable1 = Dictionary['Age']
    localVariable2 = Dictionary['Address']
    #Insert these variables to the Database

我得到了Keyerror名称,但在字典中找不到。我不知道我的变量是如何丢失的。请帮我做这个