Spring服务定期任务

时间:2017-10-14 20:51:57

标签: java spring spring-mvc

让我们假设有一个Spring引导Web应用程序,其中有两个类映射为@Controller和@Service。服务被注入控制器的领域。我需要我的服务每秒运行一次任务来更新一些外部数据。这段代码有问题吗?

@Component
public class MyService implements Runnable{
    public MyService() {
        new Thread(this).start();
    }

    @Override
    public void run() {
        while (true) {
            try {
                Thread.sleep(1000);
                // operations here
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

虽然有很多方法可以创建任务,使用job或spring任务调度程序,但下面是一种简单明了的方法。

下面的任务将每秒运行一次。

Timer timer = new Timer();
    timer.schedule(new TimerTask() {

        @Override
        public void run() {
            System.out.println("hello");
        }
    }, 0, 1000); // o is delay time after which it starts, 1000 is time interval

或者您可能希望引用here来实现spring任务调度程序。