2013-02-15 94 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编写的。