2011-07-27 2 views
0

grails 애플리케이션에 대한 질문이 있습니다. 서버 측에서 많은 작업을 수행하는 컨트롤러가 있으며 작업을 완료하는 데 몇 분이 걸릴 수 있습니다. 코드가 실행되는 동안 사용자가 새로 고침을하면 코드를 다시 실행하려고합니다. 어떻게 내가 이것을 막을까요? 아래에 몇 가지 psuedo 코드가 있습니다이미 실행중인 grails 서버 사이드 코드 실행을 막는 방법

def refreshDb = {  
    requeryDataBase() 
} 

    public void requeryDatabase(){ 

    ....some long process here 
    } 

그래서 제가 어떻게 실행중인 경우 requeryDataBase()가 실행되지 않도록합니까?

도움이나 의견을 보내 주셔서 감사합니다. jason

답변

1

여러 명의 사용자가 다음과 같은 내용의 컨트롤을 사용할 수있게하려는 경우 세션 개체를 사용하여 작업 할 수 있습니다.

  public void requeryDatabase(){ 
if (session['queryRunning']==false) { 
    session['queryRunning']=true 
    ....some long process here 
session['queryRunning']=false //set to false so the user can execute the controller again 
} 
else { 
    //Put code to notify the user to be pacient here 
} 
  } 
+0

감사합니다. 이것은 그것을 할 것 같다! – jason

관련 문제