使用java.util.timer与Quartz进行调度的优缺点?

Oma*_*eji 9 java scheduling timer scheduled-tasks quartz-scheduler

我必须编写一个执行一系列任务的应用程序:

  1. 任务每天0200时运行一次.
  2. 任务将在凌晨4点运行一次
  3. 从0003小时开始以15分钟的间隔运行任务
  4. 从0005时开始以15分钟的间隔运行任务

使用普通java.util.timer Vs的优缺点是什么?Quartz为此?

我还应该考虑其他替代方案吗?

nd.*_*nd. 10

石英

  • 额外的依赖
  • API目前(2011年末)正在发生变化:1.x正在逐渐退出,但是唯一一个由Spring和其他人支持的
  • 工作可以持久存储; 可以对多个调度程序进行集群以实现负载平衡和故障转移
  • Job和Trigger之间的区别需要一点时间来适应 - 但它有可能
  • 更强大的重复调度表达式(例如用于cron表达式的CronTrigger)

计时器

  • 配备JSE 1.3+开箱即用
  • 对于你的功能可能足够了
  • 灵活性较差,但也不太复杂

我个人使用Quartz +持久存储用于Web应用程序,其中触发器可以交互式创建,并且应该在重新启动后使用Spring的调度抽象.两种API恕我直言都缺乏一个重要的概念:在一段时间后重试失败的任务.为自己添加这个对于重复任务也是一种痛苦,应该重试.