2017-09-26 9 views
1

봄 같은 아래 소스와 같은 소스를 실행하고 싶습니다.봄에 특정 시간 이후에 함수를 어떻게 실행합니까?

@RequestMapping(value = "/test", method = RequestMethod.GET) 
@ResponseBody 
public String test() throws Exception{ 

    Timer timer = new Timer(); 
    timer.schedule(new TimerTask() { 
     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      System.out.println("test==========================="); 
     } 
    }, 6000); 
    return "test"; 
} 

그러나 나는 이것이 얼마나 효과적인 지 알지 못합니다. 사용자가 많이 연결하면 많은 문제가있는 것으로 보입니다.
봄에 어떻게하면 좋을까요. 누구든지 나를 도울 수 있습니까? 사전에 감사합니다.

답변

0

나는 당신이 무엇을 할 것인지 이해하지 못한다. (구체적으로 말하면, 무엇을 돌려 주려 하는가, 왜 지연 응답을 사용 하는가?). 모든 요청 스레드 자신이 있기 때문에 또한 그것은 요청에 다른 스레드를 사용하여 좋은 생각이 아니다 ... 당신이 예약해야하는 경우 어쨌든, 당신은이

@Scheduled(fixedDelay = 6000) 
     public StringscheduleFixedDelayTask() { 
      return "test"; 
     } 
(당신이 서비스에이 방법을 만들어야합니다) 시도 할 수 있습니다

다음은 컨트롤러에 사용 :

@Autowired 
private ServiceName sname; 

@RequestMapping(value = "/test", method = RequestMethod.GET) 
@ResponseBody 
public String test() throws Exception{ 

    return this.sname.scheduleFixedDelayTask(); 
} 

을이 당신이 찾고있는 무엇을하지 않으면, 당신이 대답을

+0

here 감사합니다 @Scheduled 주석을 읽어 보시기 바랍니다. 그러나 나는 더 명확하게 질문을 제기 할 것이다. – ansatgol