quartz+spring 实现多任务动态定时器问题

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

<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"

    xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"

    xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx"

    xsi:schemaLocation="

            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd

            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd

            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd

            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd

            http://www.springmodules.org/schema/ehcache http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd">

    <!-- The Task Bean-->

    <bean id="myTask"
class="com.xxx.example.dynamicjob.MyTask"
/>

    <!-- The quartz scheduler configuration -->

    <bean id="scheduler"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean"/>

</beans>

  

?





1

2

3

4

5

6

7

8

package
com.xxx.example.dynamicjob;

    public
class MyTask

    {

        public
void performAction() {

            System.out.println("Hey, you reached me...:)");

        }         

    }

  

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

package
com.xxx.example.dynamicjob;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.springframework.beans.factory.xml.XmlBeanFactory;

import org.springframework.core.io.ClassPathResource;

import org.springframework.scheduling.quartz.CronTriggerBean;

import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;

public class DynamicJobExample {

    /**

    * @param args

    */

    public
static void main(String[] args) {

                ClassPathResource res = new
ClassPathResource("dynamic-jobs.xml");

                XmlBeanFactory factory = new
XmlBeanFactory(res);

                //get the quartzFactory bean

                Scheduler scheduler = (Scheduler) factory.getBean("scheduler");

                //get the task bean

                MyTask myTask = (MyTask) factory.getBean("myTask");

                try
{

                // create JOB

                MethodInvokingJobDetailFactoryBean jobDetail = new
MethodInvokingJobDetailFactoryBean();

                jobDetail.setTargetObject(myTask);

                jobDetail.setTargetMethod("performAction");

                jobDetail.setName("MyJobDetail");

                jobDetail.setConcurrent(false);

                jobDetail.afterPropertiesSet();

                /* SimpleTriggerBean trigger = new SimpleTriggerBean();

                trigger.setBeanName("MyTrigger");

                trigger.setJobDetail((JobDetail) jobDetail.getObject());

                trigger.setRepeatInterval(5000);

                trigger.afterPropertiesSet();

                */

                // create CRON Trigger

                CronTriggerBean cronTrigger = new
CronTriggerBean();

                cronTrigger.setBeanName("CRON0001");

                // Execute after each 5 second

                String expression = "5 * * * * ?";

                cronTrigger.setCronExpression(expression);

                cronTrigger.afterPropertiesSet();

                //scheduler.scheduleJob(jobDetail, cronTrigger);

                scheduler.scheduleJob((JobDetail) jobDetail.getObject(), cronTrigger);

                // Start Scheduler       

                scheduler.start();

                } catch
(Exception e) {                     

                    e.printStackTrace();

                }

    }

}

  

quartz+spring 实现多任务动态定时器问题,布布扣,bubuko.com

时间: 2024-10-18 23:34:37

quartz+spring 实现多任务动态定时器问题的相关文章

Spring整合Quartz实现动态定时器

一 : 首先了解spring定时器所使用到的场景 比如 : 定时统计报表,或者登录账户密码验证失败冻结账户后,每晚12点将账户解锁等等... 使用jar包 : 2.0使用方法不同 <!-- 定时器 --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.6</versio

spring与quartz整合实现分布式动态创建,删除,改变执行时间定时任务(mysql数据库)

背景:因为在项目中用到了定时任务,当时想到了spring的quartz,写完发现费了很大功夫,光是整合就花了一上午,其中最大的问题就是版本问题,项目中用的是spring3.2.8的版本,查阅发现,3.0以上的版本需要使用quartz2.X以上版本,我就去官网下载了2.1.7的quartz,结果发现jar包与spring冲突,最后使用了quartz1.6.0版本. spring与quartz整合第一步需要导jar包,这个在百度搜下quartz的jar,下载一个 第二步:分布式定时任务,是基于数据库

Quartz 在 Spring 中如何动态配置时间--转

原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间,非常easy.比如:每天凌晨几点定时运行一个程序,这只要在工程中的spring配置文件中配置好spring整合quartz的几个属性就好. Spring配置文件 引用 <bean id="jobDetail&quo

SSM的quartz动态定时器

Controller层: package com.smartteam.controller; import com.smartteam.controller.BaseController; import com.smartteam.service.SampleTryEntryService; /** * <p> * 前端控制器 * </p> * * @author XiaoDeng * @since 2019-08-06 */ @Api(tags = "动态定时器&quo

Quartz Spring分布式集群搭建Demo

注:关于单节点的Quartz使用在这里不做详细介绍,直接进阶为分布式集群版的 1.准备工作: 使用环境Spring4.3.5,Quartz2.2.3,持久化框架JDBCTemplate pom文件如下 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h

用spring aop实现动态代理的例子

下面由我来给大家展示用spring aop实现动态代理的例子(电脑打印) 下面就看一下具体的代码: 先定义一个打印机的接口 1 package aop007_ComPrint; 2 3 public interface Print { 4 5 public void ColorPrint(); //彩色打印 6 public void WhitePrint(); //黑白打印 7 } 然后定义两个实现类,分别实现彩色打印和黑白打印 1 package aop007_ComPrint; 2 3 p

quartz spring配置实例代码demo下载

原文:quartz spring配置实例代码demo下载 源代码下载地址:http://www.zuidaima.com/share/1550463459560448.htm

Spring AOP --JDK动态代理方式

我们知道Spring是通过JDK或者CGLib实现动态代理的,今天我们讨论一下JDK实现动态代理的原理. 一.简述 Spring在解析Bean的定义之后会将Bean的定义生成一个BeanDefinition对象并且由BeanDefinitionHolder对象持有.在这个过程中,如果Bean需要被通知切入,BeanDefinition会被重新转换成一个proxyDefinition(其实也是一个BeanDefinition对象,只不过描述的是一个ProxyFactoryBean).ProxyFa

quartz spring 实现动态定时任务

阅读更多 源码:http://chuhanzhi.com/?p=45点击最下方链接即可下载 在实际项目应用中经常会用到定时任务,可以通过quartz和spring的简单配置即可完成,但如果要改变任务的执行时间.频率,废弃任务等就需要改变配置甚至代码需要重启服务器,这里介绍一下如何通过quartz与spring的组合实现动态的改变定时任务的状态的一个实现. 参考文章:http://www.meiriyouke.net/?p=82 本文章适合对quartz和spring有一定了解的读者.spring