栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Quartz简单使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Quartz简单使用

这里使用配置文件配置使用

1.引入依赖


    org.quartz-scheduler
    quartz
    2.3.2

2.新建一个job
# job里写具体需要实现的任务 通过实现Job接口创建一个工作实例
public class MyJobQtz implements Job {
    @Override
    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("start quartz job" + new Date());
        System.out.println("----------------Hello quartz------------------");
        System.out.println("end quartz job" + new Date());
    }
}
3. 配置文件 3.1 quartz.properties配置

简单配置如下 具体配置看W3cQuartz配置参考

#===============================================================
#Configure Main Scheduler Properties scheduler的配置信息
#===============================================================
#可以为任意字符串,对于scheduler来说此值没有意义,但是可以区分同一系统中多个不同的实例,
#如果使用了集群的功能,就必须对每一个实例使用相同的名称,这样使这些实例“逻辑上”是同一个scheduler。
org.quartz.scheduler.instanceName: QuartzScheduler
#可以是任意字符串,但如果是集群,scheduler实例的值必须唯一,可以使用AUTO自动生成
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export: false
org.quartz.scheduler.rmi.proxy: false
#默认false,若是在执行Job之前Quartz开启UserTransaction,此属性应该为true。
#Job执行完毕,JobDataMap更新完(如果是StatefulJob)事务就会提交。默认值是false,可以在job类上使用@ExecuteInJTATransaction 注解,以便在各自的job上决定是否开启JTA事务。
org.quartz.scheduler.wrapJobExecutionInUserTransaction: false
#===============================================================
#Configure ThreadPool  调度器线程池配置
#===============================================================
#线程池的实例类,(一般使用SimpleThreadPool即可满足几乎所有用户的需求)
org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool
#线程数量,不会动态增加
org.quartz.threadPool.threadCount: 2
#线程优先级
org.quartz.threadPool.threadPriority: 5
#加载任务代码的ClassLoader是否从外部继承
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: true
#是否设置调度器线程为守护线程
#org.quartz.scheduler.makeSchedulerThreadDaemon: true
#===============================================================
#Configure JobStore 作业存储配置
#===============================================================
#将schedule相关信息保存在RAM中,轻量级,速度快,遗憾的是应用重启时相关信息都将丢失。
#org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore
#最大能忍受的触发超时时间,如果超时则认为“失误“
org.quartz.jobStore.misfireThreshold: 60000
#将schedule相关信息保存在RDB中 有两种实现:JobStoreTX和JobStoreCMT
#选择JDBC的存储方式
org.quartz.jobStore.class:org.quartz.impl.jdbcjobstore.JobStoreTX
#类似于Hibernate的dialect,用于处理DB之间的差异,StdJDBCDelegate能满足大部分的DB(授权)
org.quartz.jobStore.driverDelegateClass:org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties:false

#============================================================================
#havent cluster spring
#============================================================================
#是否是应用在集群中,当应用在集群中时必须设置为TRUE,否则会出错。
#如果有多个Quartz实例在用同一套数据库时,必须设置为true。
org.quartz.jobStore.isClustered=False
#只用于设置了isClustered为true的时候,设置一个频度(毫秒),用于实例报告给集群中的其他实例。
#这会影响到侦测失败实例的敏捷度。

#存储相关信息表的前缀
org.quartz.jobStore.tablePrefix:qrtz_
#这个值必须datasource的配置信息
org.quartz.jobStore.dataSource:qzDS

#============================================================================
# Configure Datasources
#============================================================================
#JDBC设置
org.quartz.dataSource.qzDS.driver:com.mysql.jdbc.Driver
org.quartz.dataSource.qzDS.URL:jdbc:mysql://127.0.0.1:3306/quartz?useUnicode=true&characterEncoding=utf8
org.quartz.dataSource.qzDS.user:root
org.quartz.dataSource.qzDS.password:123456
org.quartz.dataSource.qzDS.maxConnection:10
3.2 quartz.xml配置

这里使用JobDetail 来配置 也可以使用Job配置



	
	
		
		
		
		
		
		
		
		
	

	
	
		
		
		
		
	
	
	
		
		
		
		
			
				
			
		
	

4.测试
public class QuartzXmlTest {

    public static void main(String[] args) {
        // 启动Spring 容器
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(
                "spring_quartz.xml");
        System.out.println("initContext successfully");
    }
}
5. 控制台打印 数据库数据




6. 关于service使用@Autowired注入失败的问题 6.1 quartz.xml
# 添加工厂



		
		
		
		
		
		
			
				
			
		


参考
  1. Quartz学习 https://blog.csdn.net/u010648555/category_6601767.html
  2. quartz (从原理到应用)详解篇 https://blog.csdn.net/lkl_csdn/article/details/73613033
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/825419.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号