2017-09-26 124 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

相关问题