2
如何更新python線程內的燒瓶會話?下面的代碼引發此錯誤:在Python線程中使用燒瓶會話
*** RuntimeError:請求上下文的工作之外
from flask import session
def test(ses):
ses['test'] = "test"
@app.route('/test', methods=['POST', 'GET'])
def mytest():
t = threading.Thread(target=test, args=(session,))
t.start()
在我的情況下,我想將函數「test」作爲一個線程運行,因爲它執行了很多操作,執行時間很長,我不想等待它完成,所以我只是運行將更新在會話變量中運行的進程的狀態的線程,並且將從會話變量中檢查(使用ajax調用)這些進程的狀態。換句話說,這個想法是做第一個ajax調用,不用等待響應就運行這些進程,並讓下一個ajax調用檢查狀態。 – alloyoussef
這當然是可能的,但是您需要一種機制將後臺任務與主線程同步。我建議你從Miguel Grinberg的燒瓶教程中看看[使用線程示例的後臺任務](http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xi-email-support)。 –