(可是延迟启动的功能,好像只有SimpleTriggerFactoryBean具有)mysql
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <!--调度器工厂--> <bean id="testScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <!--两个定时器--> <!--从mysql同步到redis和memory--> <ref bean="initSyncJob"></ref> <!--从redis同步到memeory到mysql --> <ref bean="triggerSyncJob"></ref> </list> </property> <property name="autoStartup" value="true"></property> </bean> <!-- 第一个定时器 start --> <!--触发点--> <bean id="initSyncJob" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> <property name="jobDetail" ref="initSyncCheck"> </property> <property name="repeatInterval"> <!-- 2秒一次--> <value>2000</value> </property> <!-- 启动开始时间 --> <property name="startDelay"><value>0</value></property> <!--重复次数:0 重复次数和重复间隔必须同时存在或同时为0--> <!--去掉的话按结束时间算 --> <property name="repeatCount"> <value>0</value> </property> <!-- 重复间隔 0s --> <property name="repeatInterval" value="0"/> </bean> <!--定时器具体做业--> <bean id="initSyncCheck" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="initJob"> </property> <property name="targetMethod" value="job"></property> <property name="concurrent" value="false"/> </bean> <bean id="initJob" class="com.test.InitTask"/> </beans> <!-- 第二个定时器 --> <!--触发点--> <bean id="triggerSyncJob" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> <property name="jobDetail" ref="syncCheck" /> <property name="startDelay" value="5000" /><!-- 调度工厂实例化后,通过5秒开始执行调度 --> <property name="repeatInterval" value="2000" /><!-- 每2秒调度一次 --> </bean> <!--定时器具体做业--> <bean id="syncCheck" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="syncJob"> </property> <property name="targetMethod" value="job"></property> <property name="concurrent" value="false"/> </bean> <bean id="syncJob" class="com.test.SyncTask"/> <!-- 若是使用CronTriggerFactoryBean做为触发点 --> <!--触发点--> <bean id="initSyncJob" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail" ref="initSyncCheck"> </property> <property name="cronExpression"> <!--每隔一分钟执行一次 --> <!--<value>0 */1 * * * ?</value>--> <!--每隔1秒执行一次 --> <value>*/1 * * * * ?</value> </property> </bean>
<!-- quartz jar --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.1</version> </dependency> <!-- quartz jar -->
原文:https://blog.csdn.net/c75836145/article/details/53423625 redis