2013-02-15 134 views
0

我正在建立一個gui /儀表板類型的東西,我通過它從用戶輸入..當用戶按提交..我收集響應並在後端開啓一項工作。 我希望實現的是...... 當用戶按提交: ,並且正在處理冗長的工作時,我會顯示類似以下內容的內容:「您的工作已成功提交) 已提交併且完成時。頁面採取用戶到該頁面。如何執行長請求

這裏是我的route.py片段看起來像

@app.route('/',methods=['POST']) 
def get_data(): 
    data = request.form 
    for data_tuple in data: 

      requests_to_gb[data_tuple] = data[data_tuple] 
    flag = execute_request(requests_to_gb) <---Fires a job 

    if flag: 
     flash("Your request has been submitted") 

    else: 
     flash("request could not be completed!") 
    return render_template('request_submitted.html') 

但問題是..這行,其中我execute_request()需要很長的時間來處理。 。一切都停止,直到完成? 我該如何處理? 我如何automaticall你也刷新到新頁面?

+0

我在使用Flask請求示例時刪除了其他標記。 – 2013-02-15 22:47:32

回答

3

使用celery這是一個分佈式任務隊列。 quickstart guide應該讓你去。

簡而言之,它允許您將任務卸載到在後臺運行的工作人員,這樣您就不會阻止主用戶界面(這是您試圖阻止的)。

好消息是,它很容易與瓶頸(或Django,或其他任何真正的)整合,因爲它是用Python編寫的。