2017-09-26 122 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(); 
} 

如果這不是你在尋找的,請閱讀@Scheduled註釋here

+0

謝謝你的回答。但我會更清楚地提出問題。 – ansatgol

相關問題