取消已在重新部署期间持续存在的TimerTask

时间:2015-08-03 13:40:19

标签: java java-ee weblogic timertask

我有一个部署到Weblogic 10.3的JavaEE应用程序。在我的应用程序中,我创建了一个TimerTimerTask,它在应用程序开始时加载,执行以下操作:

TimerTask t = new TimerTask() {
    @Override
    public void run() {
        // Perform task
    }
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(t, 0, 15000);

问题是,在重新部署应用程序之后,之前的计时器任务仍在执行。因此,在5次部署之后,有5个定时器在执行。我没有能力重启Weblogic服务器,我一直在寻找解决方案,但无济于事。有没有办法阻止这些任务?

我不再需要使用TimerTask,我只想停止当前正在执行的那些。

1 个答案:

答案 0 :(得分:0)

由于BalusC指出here,因此无法取消TimerTask。线程不由服务器管理,因此唯一的解决方案是重新启动服务器。