quartz 定时任务配置文件有五大要素,配置好这五大要素,quartz 就能够正常的工作。

五大要素分别是:

1、工作的 bean:具体是哪个 Java 类来作为定时任务的文件入口,并配置该 bean 依赖的 bean

2、工作的 method:也可以称为 job,用上面指定的 Java 类中哪个方法作为定时任务的方法入口,依赖第一要素的 bean

3、工作的 trigger:直译为触发器,定时任务执行的时间、频次等信息,依赖第二要素的 method(或者 job)

4、工作线程的配置:可以称为 taskExecutor,配置线程池大小等信息

5、工作的调度:哪些 trigger 需要工作、使用哪个 taskExecutor,依赖第三要素(trigger)和第四要素(taskExecutor)

下面分别开始介绍每个要素的配置详情

先给出执行的 Java 类代码 QuartzSrvBean.java

/**
* 定时任务调度
*/
public class QuartzSrvBean {
private Logger logger = LoggerFactory.getLogger(QuartzSrvBean.class); private PreOrderMonitorService preOrderMonitorService; public void setPreOrderMonitorService(
PreOrderMonitorService preOrderMonitorService) {
this.preOrderMonitorService = preOrderMonitorService;
} /**
* 定时执行任务.....
*/
public void exec() {
//记录定时任务日志
logger.info("xxxx定时任务开始执行-------------");
boolean isComplete = preOrderMonitorService.execUpdateTask(null);
logger.info("xxxx定时任务isComplete:" + isComplete);
} }

一、工作的 bean

<bean id="quartzSrvBean" class="com.xxx.yyy.common.QuartzSrvBean">
<property name="preOrderMonitorService" ref="preOrderMonitorService"></property>
</bean>

二、工作的 method(也叫 job)

<!-- job的配置开始 -->
<bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="quartzSrvBean"></property>
<property name="targetMethod" value="exec"></property>
</bean>

三、工作的 trigger

<bean id="myJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="myJobDetail" />
</property>
<property name="cronExpression">
<value>0/30 * * * * ?</value>
</property>
</bean>
cron 表达式生成可以用下面这个网页小工具:
http://cron.qqe2.com/

四、工作线程的配置(taskExecutor)

<!-- 配置线程的数量 -->
<bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="1" />
<property name="maxPoolSize" value="1" />
<property name="queueCapacity" value="500" />
</bean>

五、工作的调度

<!-- 启动触发器 -->
<bean name="startQuertz" id="startQuertz" lazy-init="false" autowire="no"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="myJobTrigger" />
</list>
</property>
<property name="taskExecutor" ref="executor"></property>
</bean>

原文链接:

https://www.cnblogs.com/poterliu/p/11770831.html

quartz 定时任务配置文件信息的更多相关文章

  1. Quartz定时任务简单实例

    文章纲要: 初步搭建一个由Quartz为引擎集群的定时任务模块,功能为每隔30秒打印一条信息(Hello World!!!) 一.环境 Spring MVC Mevan Quartz 2.2.1 二. ...

  2. Quartz定时任务学习(二)web应用/Quartz定时任务学习(三)属性文件和jar

    web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...

  3. SpringBoot整合Quartz定时任务 的简单实例 2

    (1)什么是Quartz?(2)Quartz的特点:(3)Quartz专用词汇说明:(4)Quartz任务调度基本实现原理: 接下来看下具体的内容: (1)什么是Quartz? Quartz是一个完全 ...

  4. SpringBoot + Quartz定时任务示例

    程序文件结构,如下图,后面详细列出各文件的代码: 1. maven的pom.xml文件如下: <project xmlns="http://maven.apache.org/POM/4 ...

  5. springboot集成shiro集成mybatis-plus、redis、quartz定时任务

    完整项目代码位于码云上,点击获取:Git地址 主要介绍一下重点配置地方: 一.application.yml文件 server: port: 8084 servlet: context-path: / ...

  6. Quartz定时任务学习(二)web应用

    web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...

  7. Quartz定时任务使用小记(11月22日)

    骤然接触quartz,先从小处着手,why,what,how quartz定时任务: 为什么使用quartz定时任务,以及定时任务在实际应用场景下的特定需求. 1.用户方面的需要,为了提供更好的使用体 ...

  8. 对quartz定时任务的初步认识

    已经好久没有写技术博文了,今天就谈一谈我前两天自学的quartz定时任务吧,我对quartz定时任务的理解,就是可以设定一个时间,然后呢,在这个时间到的时候,去执行业务逻辑,这是我的简单理解,接下来看 ...

  9. Spring整合Quartz定时任务执行2次,Spring定时任务执行2次

    Spring整合Quartz定时任务执行2次,Spring定时任务执行2次 >>>>>>>>>>>>>>>&g ...

随机推荐

  1. Mysql ---Sqlserver数据迁移到Mysql(Mysql建表迁移数据)

    1 试用了MysqlWorkBench的数据迁移功能 以为能实现:建立跟Sqlserver一样的表结构和视图的功能,sqlserver的数据迁移到mysql 实际上发现:即使勾选了表和视图,实际上却只 ...

  2. Java 虚拟机 - 2.3 HotSpot虚拟机对象

    对象的创建 Step1 类加载检查 当发现一条new指令时,检查: 该指令的参数是否能在常量池中定位到一个类的符号引用: 并且检查这个符号引用代表的类是否已经被加载.解析和初始化过.如果没有,那必须先 ...

  3. create table常用命令

    CREATE TABLE students( stuID INTEGER NOT NULL , stuname ) not null, sex int NOT NULL ); CREATE TABLE ...

  4. 模拟求root——cf1067B

    注意最后一轮要单独求一下 且最后只能有一个root #include <bits/stdc++.h> using namespace std; #define MOD 1000000007 ...

  5. 树形dp——cf1092F

    被傻逼题降智了.. 就是第一次dfs 时 求一次size,一次deep数组 然后第二次dfs时直接求最大值 先把结点1的值求出来, u->v过程中,v子树的所有结点深度-1,v外的所有结点深度+ ...

  6. mysql 函数和存储过程的区别

    >一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强.存储过程,功能强大,可以执行包括修改表等一系列数据库操作:用户定义函数不能用于执行一组修改全局数据库状态的操作. > ...

  7. windows sdk版本 之 并查集生成迷宫

    #include <cstdlib> #include <ctime> #include<algorithm> using namespace std; exter ...

  8. layui表格监听开关并获取改行id

    ,{field:'sex', title:'性别', width:85, templet: '#switchTpl', unresize: true} <script type="te ...

  9. P1020 导弹拦截 /// DP Dilworth定理 LIS、LDS优化

    题目大意: https://www.luogu.org/problemnew/show/P1020 Dliworth有两个互相对偶的定理:U的链划分使用的最少集合数,等于它的最大反链长度.(1)U的反 ...

  10. netty 私有协议栈

    通信协议从广义上区分,可以分为公有协议和私有协议.由于私有协议的灵活性,它往往会在某个公司或者组织内部使用,按需定制,也因为如此,升级起来会非常方便,灵活性好.绝大多数的私有协议传输层都基于TCP/I ...