Quartz比Spring的内置调度程序复杂一个数量级,包括对持久,事务和分布式作业的支持。尽管如此,即使使用Spring的API支持,它也有点像猪。
如果您需要的是每隔X秒或cron计划在bean上执行方法,那么 @Scheduled (或Spring的各种选项 <task> 配置架构 )可能就够了
@Scheduled
<task>
我必须说明我自己使用的经验 @Scheduled 与 Quartz 作为Spring应用程序中的调度实现。
Quartz
调度作业具有以下要求:
因此,我们必须尝试使用Quartz实现(版本2.2.3)以支持数据库中作业的持久性。一些基本结论如下:
JobListener
TriggerListener
在Spring中,您可以使用FixedRate,FixedDelay和cron来安排任务。但是大多数预定作业需要动态处理执行时间。所以在这种情况下最好使用Quartz,因为它提供了在DBJobstore和RAMJobstore中存储预定作业的选项。