让我们假设有一个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();
}
}
}
}
答案 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任务调度程序。