Quartz 定时器的时间设置(参考网络资源,找不到原博主了,还是很感谢)

基本按照这种格式配置:<value>0 26 16 * * ?</value>

时间大小由小到大排列,分别为 秒、分、时、天、月、年 ,   * 表示任意 ,? 表示无限制。

具体时间设定可参考

"0/10 * * * * ?" 每10秒触发

"0 0 12 * * ?" 每天中午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期间的每1分钟触发

"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发

"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发

"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发

"0 15 10 15 * ?" 每月15日上午10:15触发

"0 15 10 L * ?" 每月最后一日的上午10:15触发

"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

"0 0 06,18 * * ?"  在每天上午6点和下午6点触发

"0 30 5 * * ? *"   在每天上午5:30触发

"0 0/3 * * * ?"    每3分钟触发

demo如下:

quartzmaven依赖(SpringBoot的依赖没有写)

<!-- 定时执行框架 -->
<dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.3.0</version>
</dependency>

定时的相关配置:定时执行ScheduleTask类的uploadTask()方法,在这个方法里实现定时任务

package com.filereport.timer;import org.quartz.Trigger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.quartz.CronTriggerFactoryBean;
import org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;@Configuration
public class QuartzConfigration {@Bean(name = "jobDetail")public MethodInvokingJobDetailFactoryBean detailFactoryBean(ScheduleTask task) {// ScheduleTask为需要执行的任务MethodInvokingJobDetailFactoryBean jobDetail = new MethodInvokingJobDetailFactoryBean();/**  是否并发执行*  例如每5s执行一次任务,但是当前任务还没有执行完,就已经过了5s了,*  如果此处为true,则下一个任务会bing执行,如果此处为false,则下一个任务会等待上一个任务执行完后,再开始执行*/jobDetail.setConcurrent(true);jobDetail.setName("scheduler");// 设置任务的名字jobDetail.setGroup("scheduler_group");// 设置任务的分组,这些属性都可以存储在数据库中,在多任务的时候使用/** 这两行代码表示执行task对象中的uploadTask方法。定时执行的逻辑都在uploadTask。*/jobDetail.setTargetObject(task);jobDetail.setTargetMethod("uploadTask");return jobDetail;}@Bean(name = "jobTrigger")public CronTriggerFactoryBean cronJobTrigger(MethodInvokingJobDetailFactoryBean jobDetail) {CronTriggerFactoryBean tigger = new CronTriggerFactoryBean();tigger.setJobDetail(jobDetail.getObject());tigger.setCronExpression("0 30 15 ? * *");// 每天下午15:30触发
//        tigger.setCronExpression("0 36 15 ? * *");// 每天下午15:30触发//tigger.settigger.setName("myTigger");// trigger的namereturn tigger;}@Bean(name = "scheduler")public SchedulerFactoryBean schedulerFactory(Trigger cronJobTrigger) {SchedulerFactoryBean bean = new SchedulerFactoryBean();//设置是否任意一个已定义的Job会覆盖现在的Job。默认为false,即已定义的Job不会覆盖现有的Job。bean.setOverwriteExistingJobs(true);// 延时启动,应用启动5秒后  ,定时器才开始启动bean.setStartupDelay(5);// 注册定时触发器bean.setTriggers(cronJobTrigger);return bean;}//多任务时的Scheduler,动态设置Trigger。一个SchedulerFactoryBean可能会有多个Trigger@Bean(name = "multitaskScheduler")public SchedulerFactoryBean schedulerFactoryBean(){SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();return schedulerFactoryBean;}
}

任务类:uploadTask()定时任务所要执行的主要逻辑

package com.filereport.timer;import com.filereport.controller.ReportController;
import com.filereport.service.IHolidayService;
import com.filereport.utils.DBUtil21;
import com.filereport.utils.DateTimeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Component;import java.util.Iterator;
import java.util.Set;@Configuration
@Component
@EnableScheduling
public class ScheduleTask {/*  public void scheduleTest() {System.err.println("scheduleTest开始定时执行");}*/@Autowiredprivate ReportController reportController;@Autowiredprivate IHolidayService holidayService;protected void uploadTask() {/* System.out.println("有几个实例呢?--->" + this);String postDate = DateTimeUtil.getLastDay();String preDay1 = DateTimeUtil.getPreDay1();String weekDay = DateTimeUtil.getWeekDay();System.out.println("生成-->" + weekDay + "的数据");if (Constant.Monday.equals(weekDay)) {//周日reportController.reportFile(postDate, preDay1);//上周六reportController.reportFile(DateTimeUtil.getLastSecondDay(), DateTimeUtil.getPreDay2());//上周五reportController.reportFile(DateTimeUtil.getLastThirdDay(), DateTimeUtil.getPreDay3());} else if (Constant.Tuesday.equals(weekDay) || Constant.Wednesday.equals(weekDay)|| Constant.Thursday.equals(weekDay) || Constant.Friday.equals(weekDay)) {reportController.reportFile(postDate, preDay1);}else{LoggerManager.getMainLogger().info(DateTimeUtil.getToday() +"是"+weekDay+",不生成文件!");}*/try {String today2 = DateTimeUtil.getToday2();Set<String> holidaySet = holidayService.getHolidaySet(today2);if (holidaySet == null) {DBUtil21.sendMessageByProcedure("phonenumber", today2 + "是节假日,当日不上传数据", DateTimeUtil.getCurrentTime());} else {Iterator<String> iterator = holidaySet.iterator();while (iterator.hasNext()) {String date = iterator.next();System.out.println("生成date:" + date + "的数据");reportController.reportFile(date, "");}}if (holidaySet != null) {holidaySet.clear();}} catch (Exception e) {DBUtil21.sendMessageByProcedure("18818697645", DateTimeUtil.getCurrentTime() + "生成文件发生异常,请检查!", DateTimeUtil.getCurrentTime());}}
}

定时任务执行框架quartz之时间配置参考以及Demo相关推荐

  1. 【Flask框架】一. Flask框架初体验(配置环境 + 简单demo样例)

    文章目录 一. Flask框架初体验(配置环境 + 简单demo样例) 虚拟环境 新建项目 将Pycharm改为FLASK_DEBUG模式 修改FLASK_DEBUG模式的步骤 配置文件 简单用法 U ...

  2. 解决定时任务无法注入的问题,配置类

    在定时任务执行的时候,当时间点到了,执行job的时候,有时候需要用到某些bean,但是自动注入是不行的,所以只能想其他办法, 新建class加入该配置类方可解决 package com.jszb.rz ...

  3. (转)Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务...

    http://blog.csdn.net/zixiao217/article/details/53044890 读完第一节,我们已经对Quartz有了一个大体的认识,它可以定时帮我们执行一些处理程序, ...

  4. Spring中定时任务Quartz集群配置学习

    Spring中定时任务Quartz集群配置学习 原来配置的Quartz是通过spring配置文件生效的,发现在非集群式的服务器上运行良好,但是将工程部署到水平集群服务器上去后改定时功能不能正常运行,没 ...

  5. 详细总结:分布式, Nginx Linux Redis 微服务 Dubbo框架 Quartz定时任务

    目录 1.1 概念 2.1分布式概念 2.2分布式项目拆分 2.3分布式项目总结 2.3 分布式事务 3.1 Nginx配置文件介绍 3.2 实现负载均衡(Tomcat高可用) 3.3 常见面试题 4 ...

  6. spring定时任务 时间配置cron表达式

    1.Spring quartz 1.1 单纯针对时间的设置规则 org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运行时 ...

  7. 【Java Web】Quartz定时任务执行两次的解决方法

    问题描述 如果选择定时任务,那么Quartz是一个不错的框架,但是在使用的过程中,莫名发现Quartz定时任务在指定时间被执行了两次. 问题原因 在Tomcat的配置文件conf/server.xml ...

  8. oracle trigger 延迟执行_springboot中定时任务执行Quartz的使用

    环境:springboot2.2.11.RELEASE 2种方式执行定时任务 1.通过springboot的方式 2.使用Quartz实现定时任务 方式一:通过springboot的定时任务 1.开启 ...

  9. 定时任务框架Quartz

    在Spring Boot 中要实现定时任务,有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用Quartz. 1.Scheduled 这种用法非常简 ...

  10. Quartz配置参考

    0 前言 Quartz的配置通常是使用properties文件结合StdSchedulerFactory完成的.StdSchedulerFactory读取配置文件,并实例化scheduler. 默认情 ...

最新文章

  1. 每日一皮:如何把程序员骗到手!
  2. 主要推荐系统算法总结及Youtube深度学习推荐算法实例概括
  3. 前端要凉?微软开源Sketch2Code,草图秒变代码
  4. 这是我们的第一篇博客----偕行软件
  5. 命令行编译java项目_命令行编译运行java工程(转)
  6. Windows下rocketmq mqnamesrv.exe 启动成功,但是mqbroker.exe启动失败
  7. [实验流体力学][Matlab] pi 定理的应用
  8. 天线下倾角示意图_《天线和下倾角.ppt
  9. 2021年深度学习哪些方向比较新颖,处于上升期或者朝阳阶段,比较有研究潜力?
  10. css样式的百分比都相对于谁?
  11. intellij idea 简单使用教程
  12. 电商扣减库存_竞争激烈的电商市场,小型仓储外包服务解决了中小电商的后顾之忧...
  13. 高可用结合gfs2,,实现集群文件系统以及集群逻辑卷。
  14. Unity Plugins的使用方法
  15. Atitit. C# java 的api 目录封装结构映射总结
  16. editplus 打开大文件_CorelDRAW文件损坏的几种解决方法
  17. 标准正态分布表完整图 查询_正态分布基本概念及Excel实现
  18. Mirth Connect 互联互通 第四章 通用资格服务实现
  19. 深度学习:卷积神经网络(详解版)
  20. UEditor自定义工具栏图标

热门文章

  1. 《Spring技术内幕》——1.2节Spring的设计目标
  2. 寻找自己的道路——与技术同胞共勉 一种划分为七个阶段的道路:自信=意志=布局=切入点=团队=渠道=产品...
  3. 使用JS制作一个鼠标可拖的DIV(二)——限制区域移动
  4. 电子商务网站优化之策略篇
  5. VS2005 My.Computer.Registry 对象 操作注册表 简单示例
  6. 138. PHPExcel 操作
  7. 1. 第一个lavarel 项目
  8. 模式匹配和正则表达式_python
  9. springboot实现xml传参和返回值
  10. 用Python学分析:集中与分散