我正在使用 SchedulerExecuterService 在指定的延迟后以给定的时间间隔执行任务。
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(taskThread,60 ,120 ,TimeUnit.SECONDS);
发生的情况是第一次 taskThread 在延迟 60 秒后没有启动,它在延迟超过 60 秒后启动。而下一次执行以 120 秒的正确间隔开始(不完全是 120 秒,但有一个可以忽略的非常分钟的延迟)。
我的问题是为什么第一次执行延迟超过 60 秒?由于任务是由线程执行的,启动时间是否取决于线程优先级?
如何让它以 60 秒的精确延迟运行?Quartz 库呢?这个库会解决我的目的吗(在特定时间运行作业,不会有任何延迟)?
提前致谢。