取消在重新部署过程中持续存在的 TimerTask
Cancel TimerTask that has persisted across redeploy
我有一个部署到 Weblogic 10.3 的 JavaEE 应用程序。在我的应用程序中,我通过执行以下操作创建了一个 Timer
和 TimerTask
,它们在应用程序加载开始时启动:
TimerTask t = new TimerTask() {
@Override
public void run() {
// Perform task
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(t, 0, 15000);
问题是,重新部署应用后,之前的定时任务还在执行。所以在 5 次部署之后,有 5 个定时器在执行。我无法重新启动 Weblogic 服务器,我四处寻找解决方案但无济于事。有什么办法可以停止这些任务吗?
我不再需要使用 TimerTask
,我只想停止当前仍在执行的那些。
作为BalusC points out here,无法取消TimerTask
。线程不受服务器管理,因此唯一的解决方案是重新启动服务器。
我有一个部署到 Weblogic 10.3 的 JavaEE 应用程序。在我的应用程序中,我通过执行以下操作创建了一个 Timer
和 TimerTask
,它们在应用程序加载开始时启动:
TimerTask t = new TimerTask() {
@Override
public void run() {
// Perform task
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(t, 0, 15000);
问题是,重新部署应用后,之前的定时任务还在执行。所以在 5 次部署之后,有 5 个定时器在执行。我无法重新启动 Weblogic 服务器,我四处寻找解决方案但无济于事。有什么办法可以停止这些任务吗?
我不再需要使用 TimerTask
,我只想停止当前仍在执行的那些。
作为BalusC points out here,无法取消TimerTask
。线程不受服务器管理,因此唯一的解决方案是重新启动服务器。