java - 定时任务不运行

标签 java timer

我在我的 Web 应用程序中使用 Timertask 每天午夜每 24 小时启动一次后台线程。所以我有一个 ServletContextListener,在 contextInitialized 中,我创建了一个 Timertask 对象 timertask(say) 和一个 Timer 对象 say t。

我打电话

t.schedule(timertask, firstTime.getTime(), rescheduleMiliSec); 

其中 firstTime.getTime() = 午夜rescheduleMiliSec = 24 小时。 该线程启动正常,并执行它在 DIT 中应该执行的操作。它每 24 小时启动一次后台任务。

当它移动到 PROD 时,线程只在上下文初始化时运行一次,但之后不会运行。

是否有任何特定设置可能导致此问题?

最佳答案

您的 TimerTask 实现是否可能抛出 RuntimeException?

如果不是异常,则在该 Timer 中调度的某些 TimerTask 将无限期阻塞。这是我所知道的唯一可能导致计时器失败的两种情况。

顺便说一句,你可能想看看 ScheduledExecutorService .这是更现代的任务调度方式。

关于java - 定时任务不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4001046/

相关文章:

java - Swt 调整 Composite 大小但不调整窗口大小

c++ - 什么等同于 C++ 中的 JavaScript setInterval?

c++ - Qt C++ : how to add a simple countdown timer?

php - 在 PHP 中,我无法从一个进程传输到另一个进程

c# - c++ 中是否存在来自 c# 的更准确的 Timers.Timer?

java - 使用 Java 的 JComponent repaint()

java - 多对多关系不创建主键

java - Tomcat 无法启动 Grails 应用程序

java - 如何在 child 的 pom 中将 jacoco 覆盖率设置为 60%?

linux - 定时器中断和进程滴答