如何在春天的特定时间后执行功能?

时间:2017-09-26 15:48:16

标签: spring timer schedule

我想在春天执行类似的来源,例如以下来源。

@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";
}

但我不知道这是多么有效。如果用户连接很多,似乎有很多问题 我想在春天更有效。 谁能帮我 ? 提前谢谢。

1 个答案:

答案 0 :(得分: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