我必须编写一个执行一系列任务的应用程序:
使用普通java.util.timer Vs有什么优缺点。 Quartz for this?
我还应该考虑其他替代方案吗?
答案 0 :(得分:10)
我个人使用Quartz +持久存储用于Web应用程序,其中触发器可以交互式创建,并且应该使用Spring's scheduling abstraction重新启动。两种API恕我直言都缺乏一个重要的概念:在一段时间后重试失败的任务。为自己添加这个对于重复任务也是一种痛苦,应该重试。
答案 1 :(得分:1)
首先,Quartz更具扩展性。当你创建一个像cron一样的工作需求时,quartz就已经得到了支持。 应用程序使用的线程也由quartz管理,因此您不必启动自己的线程。这很好,这是由Quartz Scheduler处理的。 它还与弹簧框架集成(不知道是否适用于您的情况)。 Quartz拥有合理的文档,并得到社区的支持。
不知道java.util.Timer是否真的在企业环境中使用,但这取决于您的应用程序。
答案 2 :(得分:1)
更新:现在(2014年)随着Java 1.6,1.7的内置java调度程序的出现......我认为石英不是一个选择。