Spring+Quartz实现周末、节假日排除的定时任务

本文介绍了如何使用Spring和Quartz在Java中创建定时任务,同时排除周末和节假日。通过分析SimpleTriggerImpl和CronTriggerImpl,讨论了CronTriggerImpl的cronExpression参数和timeZone的影响。当遇到定时任务未执行的情况,可能是由于jvm时区与服务器时区不一致导致。由于Trigger无法直接排除节假日,作者转向Spring的SchedulerFactoryBean,探索其calendars属性,尽管未找到直接解决方案,但提示了可能的解决方向。最后,展示了如何自定义HolidayCalendar扩展Quartz,以支持多个日期排除,解决节假日排除问题。
摘要由CSDN通过智能技术生成

废话不多说,直接入主题。


需求:

         定时发送报表数据到企业号关注用户上,但是这些数据周末和节假日。


问题:

       直接上图:

 

很明显quartz的trigger,有如上框出来的几个:CalendaerIntervalTriggerImpl、CronTriggerImpl、DailyTimeIntervalTriggerImpl、SimpleTriggerImpl

项目里面用的比较多的是SimpleTriggerImpl和CronTriggerImpl


SimpleTriggerImpl的构造函数中有几个很重要的参数:startTime(开始时间)、endTime(结束时间)、repeatCount(重复数次)、repeatInterval(重复执行间隔),很明显,SimpleTriggerImpl就是为了在某个时间段内实现定时任务的重复执行的,还支持重复执行加间隔时间。


CronTriggerImpl的构造函数中有这几个重要参数:startTime(开始时间)、endTime(结束时间)、cronExpression(定时表达式)、timeZone(时区),这个trigger是最常用的,cronExpression很强大,可以配置某年某月某日某时某分某秒定时执行任务,也支持时间间隔,8号到12号等,cronExpression用法此文就不赘述,

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值