Web应用程序中的Quartz

JKV*_*JKV 5 java quartz-scheduler

我在Web应用程序中调度作业时遇到问题.如果我们必须在Web应用程序中安排作业,我们可以使用java util Timer/TimerTask或Quartz(还有其他调度机制,但我考虑过Quartz).我正在考虑使用哪一个,当我点击网站http://oreilly.com/pub/a/java/archive/quartz.html?page=1时说使用计时器有一个不好的效果,因为它创建了一个线程在最后一行没有容器控制.其他页面讨论了Quartz及其功能,但我可以读到Quartz还使用线程和/或线程池来安排任务.我的猜测是这些线程也不受容器控制

任何人都可以向我澄清这是否可以安全地在我的Web应用程序中使用Quartz而不创建挂起线程或线程锁定问题?提前致谢

Pas*_*ent 2

有人可以向我澄清这一点吗?在我的 Web 应用程序中使用 Quartz 是否安全,不会产生挂起线程或线程锁定问题?

quartz 和 JDK Timer 都会启动无法访问 Java EE 上下文信息的非托管线程,这是最大的问题。此外,它们可以在[应用程序服务器]不知情的情况下使用资源,管理员无法控制其数量和资源使用情况,并且会妨碍应用程序服务器正常关闭或从故障中恢复资源的能力(请参阅非托管线程) 。

话虽如此,我没有遇到挂起的线程或锁定问题(我想这取决于你对它们所做的事情)。

如果确实存在这个问题,请考虑使用 JSR-237 Timer 和 WorkManager 实现(与托管线程一起使用),例如Foo-CommonJ,而不是quartz 或 JDK Timer。