spring 4 quartz 2.x动态配置triggers

spring 4 quartz 2.x动态配置triggers,第1张

spring 4.x没有配置过,这里有一个spring 3.x 的quartz定时配置,你参考参考:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">

<!-- 

1 、JobDetail:JobDetail是一个具体的类。

    2、Trigger:触发器,它用于定义Job何时执行。最常用的是SimpleTrigger和CronTrigger。

                   一般来说,如果你需要在一个固定的时间和重复次数或者一个固定的间隔时间,那么SimpleTrigger比较合适;

                  如果你有许多复杂的作业调度,那么CronTrigger比较合适。 

      CronTrigger和 Unix的cron机制基本一样,我们需要的只是一个cron表达式。

                  比如“0 0 12 * * ?”会在每天中午12点触发执行;“0 15 10 ? * 6L”会在每个月的最后一个星期五的早上10:15触发Job执行。

    3、 Scheduler和 SchedulerFactory:Scheduler负责管理 Trigger、调度 Job,

     SchedulerFactory则是Scheduler工厂,负责生成Scheduler。 

-->

<!--  总管理类如果将lazy-init='false'那么容器启动就会执行调度程序   -->

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">

<!-- 通过applicationContextSchedulerContextKey属性配置spring上下文  [此属性可省略] -->

<property name="applicationContextSchedulerContextKey">

<value>applicationContext</value>

</property>

<property name="triggers">

<list>

<!--作业调度器,list下可加入其他的调度器-->

<ref bean="testTrigger" />

</list>

</property>

<property name="autoStartup" value="true" />

</bean>

<!--要调度的对象-->

<bean id="testJob" class="name.zealze.test.JobTest" />

<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">

<property name="jobDetail" ref="testJobDetail" />

<!-- 按cron表达式时间点触发事件 http://cron.qqe2.com/ -->

<property name="cronExpression" value="0 0/2 * * * ?" />

</bean>

<bean id="testJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<property name="targetObject" ref="testJob" />

<property name="targetMethod" value="execute" />

<!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->

<property name="concurrent" value="false" />

</bean>

</beans>

public class QuartzJob

{

public void work()

{

System.out.println(Spring Quartz的任务调度1被调用!")

//定时调用的业务逻辑

}

}

public class QuartzJob2

{

public void work()

{

System.out.println(Spring Quartz的任务调度2被调用!")

//定时调用的业务逻辑

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11614550.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存