问题描述
我创建了一个每小时运行一次的作业,如下所示
public class BackgroundJobManager implements servletcontextlistener {
private scheduledexecutorservice scheduler;
public void contextinitialized(ServletContextEvent sce) {
.
.
scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleAtFixedrate(new HourlyJob(),1,TimeUnit.HOURS);
.
.
}
}
但是HourlyJob()
每10分钟执行一次,而不是每小时执行一次。不知道我在这里做什么错。
有人知道为什么不认为TimeUnit.HOURS
符合预期吗?
解决方法
它可能是计划任务方法 @Schedule
的注释@Schedule(hour = "*")
public void doHourlyJob() {
....
}