2013-02-15 5 views
0

Я работаю над созданием типа gui/dashboard, через которое я беру данные от пользователя .. и при нажатии пользователем. Я собираю ответ и запускаю работу в конце. То, что я надеюсь достичь, - это ... Когда пользователь печатает: и эта длинная работа обрабатывается, я показываю что-то вроде: «Ваша работа была успешно отправлена) отправлена ​​ и когда она будет завершена. Я обновляю страницу, чтобы принять пользователя на эту страницу.Как выполнить длинные запросы

Вот как мой 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() занимает много времени для обработки. и все остановлено до тех пор, пока это не закончится? Как мне это сделать? И как я могу автоматически y обновить и новую страницу?

+0

Я удалил ваши другие теги, как вы просите примеры с помощью Flask. –

ответ

3

Использовать celery, который является распределенной задачей. quickstart guide должен вас поймать.

Вкратце, это позволяет выполнять задачи по разгрузке для рабочих, которые работают в фоновом режиме, чтобы вы не блокировали свой основной пользовательский интерфейс (именно это вы пытаетесь предотвратить).

Хорошая новость заключается в том, что очень легко интегрировать с флягой (или django, или что-либо еще на самом деле) с момента написания на Python.

Смежные вопросы