quartz

定时任务框架-quartz

孤街浪徒 提交于 2020-02-02 08:00:43
依赖 <!-- 定时任务jar --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.1.7</version> </dependency> 任务调度类 1 /** 2 * 3 * @作者 陈祥 4 * @创建时间 2018年5月29日 5 * @功能描述 定时任务, 分配结算大小B 业务方法实现 6 */ 7 public class DistributeSettlementDateJobService { 8 9 //非大B分销商佣金结算 时间 每个月 20 号3点 触发 10 private final String DATE_DISTRI = "0 0 3 20 * ?"; 11 // 大B 每天整点30分触发 12 private final String DATE_B_DISTRI = "0 30 * * * ?"; 13 // 检查订单过期 每分钟触发 14 private final String DATE_ORDER = "30 * * * * ?"; 15 // 自动好评, 每天 4点触发 16 private final String DATE_OrderEvaluate = "0 0 4 * * ?"; 17 //

SpringBoot-04-配置文件(IEDA)

江枫思渺然 提交于 2020-01-31 22:36:56
4.1 SpringBoot配置文件类型和作用 SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用 application.properties或者application.yml(application.yaml)进行配置。 SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件 其中,application.properties文件是键值对类型的文件,之前一直在使用,所以此处不在对properties文件的格式 进行阐述。除了properties文件外,SpringBoot还可以使用yml文件进行配置,下面对yml文件进行讲解。 4.2application.yml配置文件 yml配置文件简介 YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数 据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导 入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简 洁。

Spring集成Quartz实现定时任务和异步作业调度

只愿长相守 提交于 2020-01-30 02:54:44
Quartz是开源组织OpenSymphony的一个作业调度框架,采用多线程架构,可伸缩性强,可集群扩展。Spring集成Quartz简单高效,只需实现Job接口,在方法execute()中添加业务逻辑。 本文分享Spring集成和配置Quartz的方法,并封装一个REST接口,演示项目中的实际应用。 代码文件 功能 要点 SpringBoot集成Quartz pom.xml 引入Quartz依赖:spring-boot-starter-quartz application.yml 配置Quartz属性,配置Job运行时间cron表达式 QuartzConfig.java 配置Bean: JobDetail, Trigger,读取cron运行时间配置 实现定时任务 QuartzJob.java 实现Job接口,或者继承QuartzJobBean类 功能调用 CheckController.java 增加REST接口/chk/job,创建一个Job定时任务,Scheduler上下文Context传递数据。 l 代码 Github下载: https://github.com/jextop/StarterApi/ Quartz示例: https://github.com/rickding/HelloJava/tree/master/HelloQuartz l

quartz 不同时间间隔调度任务

左心房为你撑大大i 提交于 2020-01-29 09:09:57
Spring 整合 Quartz 任务调度   主要有两种方式。   Quartz的官网:http://www.quartz-scheduler.org/   这两种只是一些配置文件简单配置就OK了,但是根本无法明白其中的内涵所在,在上一篇的 quartz 不同时间间隔调度任务 有所介绍,可以仔细参考   话不多说直接上方案   第一种:xml配置形式   第一步   以Maven形式添加依赖 <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.3</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.3</version> </dependency>   第二步   配置xml spring-quartz.xml   你需要将这个配置<import resource="spring-quartz.xml"></import>到你的spring中   这其中也没啥   创建 MethodInvokingJobDetailFactoryBean

Quartz 开源的作业调度框架

妖精的绣舞 提交于 2020-01-29 04:56:45
Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。本系统结合通过 Spring 来集成 Quartz 。 Quartz 下载地址 : http://grepcode.com/snapshot/repo1.maven.org/maven2/org.quartz-scheduler/quartz/1.7.3 首先下载包 :quartz-1.7.3.jar (我上传到附件咯,嘿嘿) 把包放到 lib 里面。 applicationContext.xml: Xml代码 <!-- Timer schedule --> <!--要调度的对象--> < bean id= "jobBean" class= "net.xsbiz.common.MakeHtml" /> < bean id= "jobDetail" class= "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" > < property name= "targetObject" ref= "jobBean" /> < property name= "targetMethod" value=

spring用Quartz实现定时任务

荒凉一梦 提交于 2020-01-29 01:18:13
Quartz介绍: Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。而我们在写Java程序中经常会写一些定时执行的任务,比如某月的几号去执行一件事,每天的凌晨做些什么,或者每天执行一次什么方法,接下来我把简单的Quartz入门实例放进来,是可以直接运行,是对Quartz的增删改查系列,可以对于初学者,有个大概的了解。 QuartzManager(增删改查方法): package com . joyce . quartz ; import org . quartz . CronTrigger ; import org . quartz . JobDetail ; import org . quartz . Scheduler ; import org . quartz . SchedulerFactory ; import org . quartz . impl . StdSchedulerFactory ; public class QuartzManager { private static SchedulerFactory gSchedulerFactory = new

Quartz 之 JobExecutionContext 解读

左心房为你撑大大i 提交于 2020-01-27 15:50:38
查看源码注释可以得知: JobExecutionContext 是一个包含了各种上下文信息的句柄,指向执行中的JobDetail 实例 和 执行完成的Trigger实例. JobExecutionContext中有一个简便的方法可以获取执行上下文中的JobDataMap , 它是JobDetail 中的JobDataMap 和 Trigger 中的JobDataMap 的合并,后者的JobDataMap 会覆盖前者相同名称的值. 注意: 不要期望通过这个返回的JobDataMap 的set 方法设置 某个值 持久化到作业自身的JobDataMap ,即使 有@PersistJobDataAfterExecution . 试图更改此映射的内容通常会导致IllegalStateException 异常. public JobDataMap getMergedJobDataMap(); 我们看下如下例子. package com.example04; import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; /** * 1442554244 * JobExecutionContext例子 **/ public class CronTriggerExample { public void run () throws

Quartz入门

狂风中的少年 提交于 2020-01-27 03:12:16
文章目录 Quartz简介及应用场景 Quartz简单触发器 SimpleTrigger介绍 Quartz表达式触发器CronTirgger介绍 Spring task Vs Quartz Quartz简介及应用场景 1. Quartz介绍 任务调度框架“Quartz”是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统 “任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。 简单来说就是实现“计划(或定时)任务”的系统 例如 : 订单下单后未付款,15分钟后自动撤消订单,并自动解锁锁定的商品 2. Quartz的触发器 触发器用来告诉调度程序作业什么时候触发。框架提供了5种触发器类型,但两个最常用的 SimpleTrigger和CronTrigger 五种类型的Trigger(定时器) SimpleTrigger,CronTirgger,DateIntervalTrigger,NthIncludedDayTrigger和Calendar类( org.quartz.Calendar) 场景: SimpleTrigger:执行N次,重复N次 CronTrigger:几秒 几分 几时 哪日 哪月 哪周 哪年,执行 3. 存储方式 RAMJobStore

quartz 使用例子

孤者浪人 提交于 2020-01-26 11:34:27
示例版本:quartz2.3.2 原因:试下新版本api。复习下这块知识,以前写过一篇,太烂了 1、简单定时。 Scheduler defaultScheduler = null; try { defaultScheduler = StdSchedulerFactory.getDefaultScheduler(); logger.info(""); defaultScheduler.start(); JobDetail job = JobBuilder.newJob(SimpleJob.class).withIdentity("job1", "group1").build(); Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").startNow() .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(4).repeatForever()).build(); defaultScheduler.scheduleJob(job, trigger); Thread.sleep(60000); defaultScheduler.shutdown(); } catch