java定时器 基于spring框架的定时任务

第一步:编写任务类

/**
 * 定 * @Auther: JacobYang
 * @Date: 2018/5/22 16:04
 * @Description:
 */
public class TimerManager {

    public void doJob() {
        
        System.out.println("-度任务行中...");
    }
}

第二步:配置XML

<!--定-->
<bean id="jobx"
     class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
   <property name="targetObject">
      <bean class="com.djfy.intercept.TimerManager" />
   </property><!--类名-->
   <property name="targetMethod" value="doJob" /><!--方法名-->
   <property name="concurrent" value="false" /><!-- 作不并发调度 -->
</bean>
 
<!--这是第三步的触发器配置-->
<bean id="
cronTrigger
" class ="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean" > < property name ="jobDetail" ref =" jobx " /> < property name ="startDelay" value ="1000" /> <!-- 度工厂 例化后, 经过 1秒开始 度 --> < property name ="repeatInterval" value ="3000" /> <!-- 每3秒 度一次 --> </ bean >
<!--第四步:配置调度工厂-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
   <property name="triggers">
      <list>
         <ref bean="cronTrigger" />
      </list>
   </property>
</bean>
(注:同颜色字体,俩名称必须一样 我的任务是每天定时(23.59)执行,到这里你的定时任务已经完成,可以不看下面)

第三步:配置触发方式(触发器)

Quartz的作业触发器有两种,分别是

 

org.springframework.scheduling.quartz.SimpleTriggerBean

 

org.springframework.scheduling.quartz.CronTriggerBean

 

    第一种SimpleTriggerBean,只支持按照一定频度调用任务,如每隔30分钟运行一次。

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
   <property name="jobDetail" ref="jobx" />
   <property name="startDelay" value="1000" /><!-- 度工厂例化后,经过1秒开始度 -->
   <property name="repeatInterval" value="30000" /><!-- 每30秒度一次 -->
</bean>

    第二种CronTriggerBean,支持到指定时间运行一次,如每天23.59运行一次等。

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
   <property name="jobDetail" ref="jobx" />
   <!--每天23:59运行一次 -->
   <property name="cronExpression" value="0 59 23 * * ?" />
</bean>

第四步:配置调度工厂

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
   <property name="triggers">
      <list>
         <ref bean="cronTrigger" />
      </list>
   </property>
</bean>


(可查看问w3cschool

附录:
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 12 * * ?"每天中午十二点触发
"0 15 10 ? * *"每天早上10:15触发
"0 15 10 * * ?"每天早上10:15触发
"0 15 10 * * ? *"每天早上10:15触发
"0 15 10 * * ? 2005"2005年的每天早上10:15触发
"0 * 14 * * ?"每天从下午2点开始到2点59分每分钟一次触发
"0 0/5 14 * * ?"每天从下午2点开始到2:55分结束每5分钟一次触发
"0 0/5 14,18 * * ?"每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
"0 0-5 14 * * ?"每天14:00至14:05每分钟一次触发
"0 10,44 14 ? 3 WED"三月的每周三的14:10和14:44触发
"0 15 10 ? * MON-FRI"每个周一、周二、周三、周四、周五的10:15触发

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值