quartz数据库方式配置

项目中一般都会用到定时任务,spring在定时任务这块有很好的封装,早起版本,quartz的jar是独立出来的,现在spring将quartz的jar包集成了进去,springBoot也只需引入spring-boot-starter-quartz就ok了,非常简便,但也不得不服源代码开发大牛,我们想要知道底层,得自己去研究了。下面就通过代码简单说明quartz数据库方式。

<!-- 以数据库存储的方式来QUARTZ调度 -->
	<bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="applicationContextSchedulerContextKey" value="applicationContext"/>
        <!--quartz的配置文件,会过properties读取配置,配置内容诸如corn表达式等等-->
		<property name="configLocation" value="classpath:META-INF/conf/quartz.properties"/>
		<!--QuartzScheduler 延时启动,应用启动完后 QuartzScheduler 再启动  value:延时启动时间-->
		<property name="startupDelay" value="20"/>
		<!-- QuartzScheduler 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 -->
		<property name="overwriteExistingJobs" value="true"/>
		<property name="triggers">
			<list>
                <!--可配置多个-->
				<ref bean="XXXXTrigger" />
	
			</list>
		</property>
	</bean>
    <!--配置job-->
    <bean id="XXXXJob"             class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <!--jobClass 需要继承ScanMsgTaskJob ,该类需要引入spring-contex-support.jar-->
		<property name="jobClass" value="com.XXX.xxx"></property>
		<property name="durability" value="true"></property>
	</bean>
    <!--配置触发器-->
    <bean id="XXXXTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name="jobDetail" ref="XXXXJob"></property>
        <!--corn 表达式,自己可以百度搜写法,不难,规则是定好的-->
        <!--秒 分 时 天 年-->
		<property name="cronExpression" value="0 0 2 * * ?"></property>
	</bean>

所有配置完成后,启动项目数据库会自动生成很多quartz表:

每个表的意思,本人百度了https://blog.csdn.net/tengdazhang770960436/article/details/51019291

解释如下:

1.1.qrtz_blob_triggers : 以Blob 类型存储的触发器。 
1.2.qrtz_calendars:存放日历信息, quartz可配置一个日历来指定一个时间范围。 
1.3.qrtz_cron_triggers:存放cron类型的触发器。 
1.4.qrtz_fired_triggers:存放已触发的触发器。 
1.5.qrtz_job_details:存放一个jobDetail信息。 
1.6.qrtz_job_listeners:job**监听器**。 
1.7.qrtz_locks: 存储程序的悲观锁的信息(假如使用了悲观锁)。 
1.8.qrtz_paused_trigger_graps:存放暂停掉的触发器。 
1.9.qrtz_scheduler_state:调度器状态。 
1.10.qrtz_simple_triggers:简单触发器的信息。 
1.11.qrtz_trigger_listeners:触发器监听器。 
1.12.qrtz_triggers:触发器的基本信息。

其中qrtz_cron_triggers、qrtz_job_details、qrtz_triggers这几个表在项目启动后会填充数据;qrtz_cron_triggers会记录配置的完整tragger信息,包括corn表达式;qrtz_job_details保存了所有的job信息,以及该job位于工程的包路径;qrtz_triggers记录了所有触发器的信息,包括下次执行时间、执行优先级等等。

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值