纯净版quartz定时任务【maven】

Quartz是一个完全由Java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制。Quartz允许开发人员根据时间间隔来调度作业。它实现了作业和触发器的多对多的关系,还能把多个作业与不同的触发器关联。

简单的介绍一下下面的Quartz项目包括如何调度其他的类。

搭建定时任务服务

首先新建一个maven项目

然后配置pom文件,我们需要引如下jar包依赖

<dependency>

<groupId>org.quartz-scheduler</groupId>

<artifactId>quartz</artifactId>

<version>2.2.1</version>

</dependency>

<dependency>

<groupId>org.quartz-scheduler</groupId>

<artifactId>quartz-jobs</artifactId>

<version>2.2.1</version>

</dependency>

<dependency>

<groupId>javax.transaction</groupId>

<artifactId>jta</artifactId>

<version>1.1</version>

</dependency>

然后pom文件中配置jdk及tomcat插件

<plugins>

<!-- Tomcat7 -->

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<version>2.2</version>

<configuration>

<path>/${project.artifactId}</path>

<port>8083</port>

<uriEncoding>UTF-8</uriEncoding>

<url>http://localhost:8083/</url>

<server>tomcat7</server>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.8</source>

<target>1.8</target>

</configuration>

</plugin>

</plugins>

然后我们需要新建一个properties和xml文件

大体服务结构如下:

properties内容如下:

#============================================================================

# Configure Main Scheduler Properties

#============================================================================

org.quartz.scheduler.instanceName = QuartzScheduler

org.quartz.scheduler.instanceId = AUTO

#============================================================================

# Configure ThreadPool

#============================================================================

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool

org.quartz.threadPool.threadCount = 5

org.quartz.threadPool.threadPriority = 5

#============================================================================

# Configure JobStore

#============================================================================

org.quartz.jobStore.misfireThreshold = 60000

org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

#============================================================================

# Configure Plugins

#============================================================================

#org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin

org.quartz.plugin.jobInitializer.fileNames = quartz_data.xml

org.quartz.plugin.jobInitializer.failOnFileNotFound = true

org.quartz.plugin.jobInitializer.scanInterval = 10

org.quartz.plugin.jobInitializer.wrapInUserTransaction =false

#\u9ED8\u8BA4\u4F1A\u8054\u7F51\u68C0\u67E5\u662F\u5426\u6709\u66F4\u65B0\uFF0C\u8FD8\u662Fskip\u4E3A\u597D

org.quartz.scheduler.skipUpdateCheck =true

然后配置quartz_dataxml

<?xml version="1.0" encoding="UTF-8"?>

<job-scheduling-data

xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"

version="1.8">

<schedule>

<job>

<name>DemoJob</name>

<group>JobGroup</group>

<job-class>job.QuartzDemoJob</job-class>

</job>

<trigger>

<cron>

<name>DemoTrigger</name>

<group>triggerGroup</group>

<job-name>DemoJob</job-name>

<job-group>JobGroup</job-group>

<cron-expression>0/3 * * * * ?</cron-expression>

</cron>

</trigger>

</schedule>

<schedule>

<job>

<name>TestJob</name>

<group>TestGroup</group>

<job-class>job.QuartzTestJob</job-class>

</job>

<trigger>

<cron>

<name>DemoTrigger</name>

<!-- <group>triggerGroup</group> -->

<job-name>TestJob</job-name>

<job-group>TestGroup</job-group>

<cron-expression>0/5 * * * * ?</cron-expression>

</cron>

</trigger>

</schedule>

</job-scheduling-data>

然后创建俩个job类

package job;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

public class QuartzDemoJob implements Job {

@Override

public void execute(JobExecutionContext arg0) throws JobExecutionException {

System.out.println(new Date() + "FXP");

}

}

package job;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

public class QuartzTestJob implements Job {

@Override

public void execute(JobExecutionContext arg0) throws JobExecutionException {

System.out.println(new Date() + "HL");

}

}

最后再在web.xml配置如下内容即可:

<servlet>

<servlet-name>QuartzInitializer</servlet-name>

<servlet-class>

org.quartz.ee.servlet.QuartzInitializerServlet

</servlet-class>

<init-param>

<param-name>config-file</param-name>

<param-value>quartz.properties</param-value>

</init-param>

<init-param>

<param-name>shutdown-on-unload</param-name>

<param-value>true</param-value>

</init-param>

<load-on-startup>2</load-on-startup>

</servlet>

然后启动就可以看到效果了,FXP每三秒输出一下,而HL每五秒输出一下。【这个秒数在quartz_data.xml中配置】

纯净版quartz定时任务【maven】-xjh测试---https://www.cnblogs.com/lulf/p/7089364.html相关推荐

  1. Win10纯净版下载,大数据win10测试,虚拟机专用

    最近在大数据开发过程中,遇到需要在win10环境下进行测试,由于我的电脑已经升级到win11,不想重装系统,于是用虚拟机vmware安装虚拟机,之前在系统之家下载过win10镜像,但是或多或少都带有一 ...

  2. bboss quartz定时任务使用案例介绍

    bboss quartz定时任务使用案例介绍 本文demo gradle工程源码地址: [url]https://github.com/bbossgroups/quartzdemo[/url] [si ...

  3. Springboot集成Quartz定时任务yml文件配置方式

    构建maven项目,引入maven依赖包 其中quartz.quartz-jobs.spring-boot-starter-quartz.spring-context-support  四个依赖包为q ...

  4. ubuntu python3.8安装pip_ubuntu16.04纯净版-安装Python3.8.1/升级pip

    Ubuntu 16.04  amd64 (64bit)(纯净版) 自带python2.7和python3.5 执行"whereis python"查看当前安装的python [ro ...

  5. 搭建eclipse版的ssm+maven+tk.mybatis+redis及mybatis+spring多数据源配置集成的demo

    前言:我这里搭建好eclipse版的ssm+maven+tk.mybatis+redis及mybatis+spring多数据源配置集成的demo.新手快速上手直接看demo. 最后处提供完整高质量de ...

  6. 驱动外置+原版安装方式『XLOS_Windows8_Pro_X86纯净版_V1.0』

    ============================= XLOS_Windows8_Pro_X86纯净版_V1.0============================== ◆◆◆◆◆◆◆本次采 ...

  7. 记一次quartz定时任务不执行排雷

    过程 项目中需求统计数据,涉及大屏展示,展示的数据很复杂,所以采取了晚上把数据汇总出来存到redis缓存,供白天查询的方式. 用到了quartz定时任务,写好sql.逻辑等测试没问题,就愉快的部署到了 ...

  8. Quartz定时任务-@DisallowConcurrentExecution注解

    Quartz定时任务默认都是并发执行的,不会等待上一次任务执行完毕,只要间隔时间到就会执行, 如果定时任执行太长,会长时间占用资源,导致其它任务堵塞. 在Spring中这时需要设置concurrent ...

  9. 虚拟机安装Win10纯净版操作系统

    虚拟机安装Win10纯净版操作系统 虚拟机安装Win10纯净版操作系统 1. 操作系统资源地址 2. 虚拟机安装步骤 3. 写在后面 虚拟机安装Win10纯净版操作系统 本文讲述在VMware Wor ...

最新文章

  1. Linux那些事儿 之 戏说USB(3)我是一棵树
  2. java.lang.NoSuchFieldError: deferredExpression
  3. 一张图读懂“云栖大会·南京峰会”重磅发布产品
  4. 再见了,收费的Navicat
  5. 笔记-高项案例题-2016年上-范围管理+沟通管理+进度管理+风险管理
  6. Redis学习之复制(三)
  7. [DP/单调队列]BZOJ 2059 [Usaco2010 Nov]Buying Feed 购买饲料
  8. 类似mysqlhotcopy备份mysql myisam脚本
  9. TensorFlow---(1)开源软件库TensorFlow最全教程和项目列表
  10. linux系统内核参数命令,Linux内核启动参数解析及添加
  11. 关于QT中奇数个汉字出现newline in constant的错误
  12. java基础源码 (2)--StringBuilder类
  13. 24个可能你现在用不到,但应该了解的 PHP 库
  14. 2021年最新3d材质贴图素材大合集来咯
  15. 解决笔记本电脑外接显示器后声音播放不了的问题
  16. 2020年Android GMS 认证 boot logo 最新要求
  17. 背景与字体的搭配经验
  18. vue 超出三行隐藏_文字超出三行省略...显示全文
  19. 【工具安装】Quartus II 安装与驱动
  20. Oracle中的dual是什么

热门文章

  1. 理工科生为什么必读东野圭吾推理小说?
  2. 计算机病毒常见的寄生场所,4章节 计算机病毒寄生环境分析.ppt
  3. 简述python中的数值类型_Python中的数值类型
  4. Tinyxml简单使用法
  5. numpy.random用法
  6. Gradle 自定义Plugin插件之上传APK到蒲公英
  7. NOI数据结构:KM算法
  8. oracle怎么查询换行符,oracle 回车、换行符
  9. 选择了什么样的工作就选择了什么样的生活方式
  10. Wayland入门12:输入设备管理器