SpringQuartz 定时器 java

SpringQuartz 定时器

springmvc maven 需要的jar包

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>4.0.2.RELEASE</version>
    </dependency>

    <!--quartz 定时器-->
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.3.0</version>
    </dependency>
  1. 第一步

    先根据自己的需求定一个job类

package cn.msosm.msShopPlatform.scheduler;

/**
 * 
 * @ClassName: Scheduler 创建一个job类
 *
 * @Description: 定时器 根据配置时间 去查询订单表里的订单没有分配的数据去分配 红积分白积分 和获取金额
 *
 * @author sunp
 *
 * @date 2017年9月15日 下午4:27:23
 *
 */
public class Scheduler {


    public void execute() {
        System.out.println("任务开始执行。。。。");
        System.out.println(".......");
        System.out.println("任务执行完毕。。。。");
    }


}
  1. 第二步

    在配置文件中 添加 定时器的配置


    <!-- 配置job类  任务调度 -->
    <bean id="scheduler" class="cn.msosm.msShopPlatform.scheduler.Scheduler"/>
    <!--  配置jobDetail -->
    <bean id="springQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject">
            <ref bean="scheduler"/>
        </property>
        <property name="targetMethod"><!-- 要执行的方法名称 -->
            <value>execute</value>
        </property>
    </bean>
    <!-- 配置 触发器 trigger -->
    <bean id="cronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="springQtzJobMethod"></property>
        <property name="cronExpression" value="0/5 * * * * ?"></property><!-- 执行时间  秒 分 时 天 星期   -->
        <!-- 
            Cron表达式
            1 。 Seconds 2 。 Minutes 3 。 Hours 4 。 Day-of-Month 5 。 Month 6 。 Day-of-Week 7 。 Year(可选字段)
         -->
    </bean> 
    <!-- 配置调度工厂 -->
    <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="cronTriggerFactoryBean"/>            
            </list>
        </property>
    </bean>

这里写图片描述

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。 Quartz的优势: 1、Quartz是一个任务调度框架(库),它几乎可以集成到任何应用系统中。 2、Quartz是非常灵活的,它让您能够以最“自然”的方式来编写您的项目的代码,实现您所期望的行为 3、Quartz是非常轻量级的,只需要非常少的配置 —— 它实际上可以被跳出框架来使用,如果你的需求是一些相对基本的简单的需求的话。 4、Quartz具有容错机制,并且可以在重启服务的时候持久化(”记忆”)你的定时任务,你的任务也不会丢失。 5、可以通过Quartz,封装成自己的分布式任务调度,实现强大的功能,成为自己的产品。6、有很多的互联网公司也都在使用Quartz。比如美团 Spring是一个很优秀的框架,它无缝的集成了Quartz,简单方便的让企业级应用更好的使用Quartz进行任务的调度。   课程说明:在我们的日常开发中,各种大型系统的开发少不了任务调度,简单的单机任务调度已经满足不了我们的系统需求,复杂的任务会让程序猿头疼, 所以急需一套专门的框架帮助我们去管理定时任务,并且可以在多台机器去执行我们的任务,还要可以管理我们的分布式定时任务。本课程从Quartz框架讲起,由浅到深,从使用到结构分析,再到源码分析,深入解析QuartzSpring+Quartz,并且会讲解相关原理, 让大家充分的理解这个框架和框架的设计思想。由于互联网的复杂性,为了满足我们特定的需求,需要对Spring+Quartz进行二次开发,整个二次开发过程都会进行讲解。Spring被用在了越来越多的项目中, Quartz也被公认为是比较好用的定时器设置工具,学完这个课程后,不仅仅可以熟练掌握分布式定时任务,还可以深入理解大型框架的设计思想。
Java Spring定时器有两种实现方式,分别是Java Timer定时和Quartz定时器。 1. Java Timer定时: ```java import java.util.Timer; import java.util.TimerTask; public class MyTask extends TimerTask { public void run() { // 定时执行的任务逻辑 System.out.println("Java Timer定时任务执行"); } public static void main(String[] args) { Timer timer = new Timer(); // 延迟1秒后开始执行任务,每隔5秒执行一次 timer.schedule(new MyTask(), 1000, 5000); } } ``` 2. Quartz定时器: 首先需要在pom.xml文件中添加Quartz的依赖: ```xml <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version> </dependency> ``` 然后创建一个Job类,实现Job接口,并重写execute方法,定义定时执行的任务逻辑: ```java import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; public class MyJob implements Job { public void execute(JobExecutionContext context) throws JobExecutionException { // 定时执行的任务逻辑 System.out.println("Quartz定时任务执行"); } } ``` 接下来,在Spring配置文件中配置Quartz定时器: ```xml <bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="myJob"/> <property name="targetMethod" value="execute"/> </bean> <bean id="myTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"> <property name="jobDetail" ref="myJobDetail"/> <property name="startDelay" value="1000"/> <property name="repeatInterval" value="5000"/> </bean> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="myTrigger"/> </list> </property> </bean> ``` 以上是Java Spring定时器的两种实现方式,可以根据具体项目需求选择适合的方式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值