如何解决为什么ScheduledThreadPoolExecutor调度方法几乎立即运行任务?
我们的产品中包含一些代码,这些代码使用ScheduledThreadPoolExecutor调度方法来定期调度任务。代码如下:-
public void schedule(Object o,Runnable task,long delay,TimeUnit unit) throws RejectedExecutionException {
ScheduledThreadPoolExecutor pool = ensurePoolExecutor(o.getClass());
if (pool.isShutdown()) {
log.warn("Cannot schedule task due to shutdown being called: {}",o.getClass().getSimpleName());
return;
}
pool.schedule(task,delay,unit);
}
我们正在调用上述具有TimeUnit毫秒的API,并延迟大约 158321毫秒(〜2分钟)。该代码在我们的实验室和许多其他环境中都能正常工作。但是,我们已经在一个客户环境中看到,不遵守传递给schedule方法的delay参数,并且该任务几乎是立即执行的。关于为什么发生这种情况的任何线索将不胜感激。可能是由于特定VM中的某些设置/配置错误引起的吗?顺便说一句,此代码在Windows服务器计算机上运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。