3、Spring新型方式实现定时调度

1、实现和循环调度类似

public class QuartzJob3{
    public void test(){
        SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");
        System.out.println("Spring新型方法-使用定时触发器-被调用"+sdf.format(new Date()));
    }
}  

2、Spring配置如下

(1)注入调度类对象(注入2个类对象,用不同方式触发)

<!-- 注入调度类对象 -->
<bean id="quartzJob2" class="action.QuartzJob2"/>
<bean id="quartzJob3" class="action.QuartzJob3"/>

(2)注入任务调度管理类对象

    <!-- 配置任务调度管理类对象-->
    <bean id="methodInvoking1" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="quartzJob2"/>
        <property name="targetMethod" value="test"/>
    </bean>

    <bean id="methodInvoking2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="quartzJob3"/>
        <property name="targetMethod" value="test"/>
    </bean>

(3)定义触发器(两个触发器显示其区别)

    <!-- 定义触发器-简单触发器 -->
    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
        <property name="jobDetail" ref="methodInvoking1"/>
        <property name="startDelay" value="1000"/>
        <property name="repeatInterval" value="2000"/>
    </bean>

    <!-- 定义触发器-定时触发器 -->
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="methodInvoking2"/>
        <property name="cronExpression" value="0 15 * * * ?"/>
    </bean>

(4)工厂模式激活触发器

    <!-- 启动任务 -->
    <bean id="quartzFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref local="simpleTrigger"/>
                <ref local="cronTrigger"/>
            </list>
        </property>
    </bean>  

3、测试类

    <!-- 启动任务 -->
    <bean id="quartzFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref local="simpleTrigger"/>
                <ref local="cronTrigger"/>
            </list>
        </property>
    </bean>  

4、运行结果

可以看到16:15的时候触发了定时触发器

时间: 2024-08-07 05:33:34

3、Spring新型方式实现定时调度的相关文章

2、Spring新型方式实现循环调度

1.Spring新型方式无需继承哪个类 public class QuartzJob2{ public void test(){ SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss"); System.out.println("Spring新型方法-使用简单触发器-被调用"+sdf.format(new Date())); } } 2.Spring配置如下 (1)注入调度类的对象 <!-- 注入调度类对象 -

Spring进阶-怎样集成定时调度Quartz

在一些项目里面比如进销存系统,对一些过期图片的定时清理或者库存不足发出预警提示,就需要用到定时调度技术. 每当经过一段时间,程序会自动执行,就是定时调度.如果要使用定时调度,则必须保证程序始终运行才行哦,也就是说定时调度是在程序之外又启动了一个新的线程.那么怎样才能实现定时调度呢? 方案一:可以使用JDK自带的java.util.Timer对象.可以创建定制的timer或者调用某些方法的timer.包装timer的工作由Spring TimerFactoryBean完成,不过这种方法不能准确设置

Spring中的定时调度(Scheduling)和线程池(Thread Pooling)

简介 Spring包含了对定时调度服务的内置支持类.当前,Spring支持从JDK1.3开始内置的Timer类和Quartz Scheduler(http://www.opensymphony.com/quartz/).二者都可以通过FactoryBean,分别指向Timer或Trigger实例的引用进行配置.更进一步,有个对Quartz Scheduler和Timer都有效的工具类可以让你调用某个目标对象的方法(类似通常的MethodInvokingFactoryBean操作).Spring

Spring整合quartz框架实现任务定时调度

1.  首先需要引入需要的jar包,如上图所示. 2. 编写需要定时调度的测试类: package com.jp.task; import java.util.Date; public class TestTask{ private static int counter = 0; protected void execute() { long ms = System.currentTimeMillis(); System.out.println("\t\t" + "=====

spring的定时调度

项目中要用到一个报表的运算服务器,项目一运行,就会启动相关的运算方法. 想了一圈,java web项目,spring是个万金油,什么都叫由它来管理.一查,还真有这个定时调度的功能. spring提供两种触发器,一个是CronTriggerBean,一个是SimpleTriggerBean. 好懒,长话短说吧. 环境: spring + ibatis,首先配置spring配置文件.写service层(具体的运算方法就写在这). 1). CronTriggerBea <!-- 定义job -->

spring cloud互联网分布式微服务云平台规划分析--spring cloud定时调度平台

1.介绍 鸿鹄云架构[定时调度平台]是一个完全由Java编写的开源任务调度框架,为企业在任务调度提供了简单却强大的机制.开发人员根据业务规则,使用调度平台简单配置,就可以让任务在特定时间特定阶段进行运行.特点如下: 1.强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求. 2.灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种存储方式. 3.分布式和集群能力,在复杂业务调度下非常稳定. 2.平台基础功能 调度管理 调度列表.新增任务.修改任务.删除任务.暂停

【Quartz】基于Spring注解方式配置Quartz

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka         在上讲[Quartz]Spring3.2.9+Quqrtz2.2.1实现定时实例中,我们使用了XML的方式来配置Quartz定时任务,虽然比用API的方式简便多了,但是Spring还支持基本注解的方式来配置.这样做不仅更加简单,而且代码量也更加少了. 新建一个Java工程,导入要用到的包,Spring3.2.Quartz2.2.1.aopalliance-1.0.jar.co

集群环境下定时调度的解决方案之Quartz集群

集群环境可能出现的问题 在上一篇博客我们介绍了如何在自己的项目中从无到有的添加了Quartz定时调度引擎,其实就是一个Quartz 和Spring的整合过程,很容易实现,但是我们现在企业中项目通常都是部署在集群环境中的,这样我们之前的定时调度就会出现问题了,因为我们的定时任务都加载在内存中的,每个集群节点中的调度器都会去执行,这就会存在重复执行和资源竞争的问题,那么如何来解决这样的问题呢,往下面看吧... 解决方案 在一般的企业中解决类似的问题一般都是在一个note上部署Quartz其他note

那些年,我们追过的“定时调度”

定时调度作为后端开发人员,我们总会遇到这样的业务场景:每周同步一批数据:每半个小时检查一遍服务器运行状况:每天早上八点给用户发送一份包含今日待办事项的邮件,等等. 这些场景中都离不开"定时器",就像一个定好时间规则的闹钟,它会在指定时间触发,执行我们想要定义的调度任务.那么我们今天就来数一下,那些年我们用过的"定时调度". 1.job (oracle)从刚工作就一直使用oracle数据库,最早接触的定时任务就是oracle数据库的job.job有定时执行的功能,可以