quartz框架简单使用

在项目工程中,很多时候我们都需要定时来处理一些任务,简单的方法是利用Quartz框架,下面我们来看看这个框架怎么简单使用吧!
首先,在项目中添加依赖:

      <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
            <version>2.2.1</version>
    </dependency>

我们开始写一个简单的例子:simpleJob.java
代码如下:

    package com.test.schedule; 
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* Created by _qingfeng on 2017/9/18.
*/
@Component
public class simpleJob {
public void executeWork(){
System.out.println("---------------");
System.out.println("--定时任务启动--"+new Date().toString());
//...
//任务处理
//...
System.out.println("--定时任务结束--");
System.out.println("---------------");
}
}

我们在 XML配置文件中配置一下:

   <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="simpleTrigger"/>
            </list>
        </property>
        <property name="autoStartup" value="false"/>
    </bean>
  simpleTrigger:
    <!-- simpleTrigger-->
    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <property name="jobDetail" ref="simpleJobDetail"/>
        <property name="cronExpression" value="0 0 0/1 * * ?"/><!-- 每一分钟执行一次 -->
    </bean>
    <bean id="simpleJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="simpleJob"/>
        <property name="targetMethod" value="executeWork"/>
        <property name="concurrent" value="false"/>
        <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
    </bean>

执行结果:
执行结果
执行结果2

附录:
cronExpression的配置说明如下,具体使用以及参数请百度一下

字段   允许值   允许的特殊字符
秒    0-59    , - * /
分    0-59    , - * /
小时    0-23    , - * /
日期    1-31    , - * ? / L W C
月份    1-12 或者 JAN-DEC    , - * /
星期    1-7 或者 SUN-SAT    , - * ? / L C #
年(可选)    留空, 1970-2099    , - * / 
- 区间  
* 通配符  
? 你不想设置那个字段

具体例子:

CRON表达式    含义 
"0 0 13 * * ?"    每天中午十三点触发 
"0 20 11 ? * *"    每天早上1120触发 
"0 20 11 * * ?"    每天早上1120触发 
"0 20 11 * * ? *"    每天早上1120触发 
"0 20 11 * * ? 2017"    2017年的每天早上1120触发 
"0 * 15 * * ?"    每天从下午3点开始到359分每分钟一次触发 
"0 0/5 15 * * ?"    每天从下午3点开始到355分结束每5分钟一次触发 
"0 0/5 15,19 * * ?"    每天的下午3点至3557点至755分两个时间段内每5分钟一次触发 
"0 0-10 15 * * ?"    每天15:0015:05每分钟一次触发 
"0 10,55 15 ? 5 MON"    五月的每周一的15101555触发 
"0 20 11 ? * MON-FRI"    每个周一、周二、周三、周四、周五的1120触发 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值