scheduleAtFixRate每10分钟运行一次,而不是每小时运行一次

问题描述

我创建了一个每小时运行一次的作业,如下所示

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() {
    ....
}