2013-02-15 2 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()를 처리하는 데 시간이 오래 걸립니다 그 라인을. . 완료 될 때까지 모든 것이 중단됩니다. 어떻게 처리합니까? 그리고 어떻게 자동으로합니까? 새 페이지로 새로 고침 하시겠습니까?

+0

플라스크를 사용하여 예제를 요청할 때 다른 태그를 제거했습니다. –

답변

3

분산 작업 대기열 인 celery을 사용하십시오. quickstart guide으로 가야합니다.

간단히 말해서 기본 인터페이스 (차단하려는 대상)를 차단하지 않도록 백그라운드에서 실행되는 작업자에게 작업을 오프로드 할 수 있습니다.

좋은 소식은 파이썬으로 작성된 이래로 플라스크 (또는 장고, 또는 다른 모든 것들)와 쉽게 통합 할 수 있다는 것입니다.

관련 문제