我在我的web应用程序中使用Timertask
在每天午夜24小时启动一次后台线程。所以我有一个ServletContextListener并在contextInitialized中创建了一个Timertask对象timertask(say)和一个Timer对象say t。计时器任务不运行
我打电话
t.schedule(timertask, firstTime.getTime(), rescheduleMiliSec);
其中firstTime.getTime() = midnight
和rescheduleMiliSec = 24 hr
。 线程启动罚款和做什么是应该在DIT.Every做24个小时,它会启动后台任务。
当它移动到PROD时,线程只会在上下文初始化时运行一次,但不会在此之后运行。
是否有任何具体的设置可能是这个原因?
当上下文首先初始化,所述TimerTask的正常运行,并且没有例外。后来也没有例外。它只是不运行。 – Victor 2010-10-22 22:38:17
由于这个问题是迫切需要我来解决,如果实际的解决方案是很难找到的,像下面一个解决办法也将正常工作。我仍然需要尽管实施它的一些帮助:由于逻辑驻留在contextinitialised(),每次应用程序重新部署时,上下文将初始化和逻辑运行。有没有办法在午夜时分自动重新部署应用程序?也许是一个脚本?这是一个有点凌乱,但它现在做... – Victor 2010-10-22 23:09:54
@ user454671,更新我的答案。关于重新部署应用程序,你可能会考虑一个时间工作......但这似乎不是一个合理的解决方案。 – 2010-10-23 05:06:43