博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
quartz+spring框架动态调整频率实践
阅读量:7302 次
发布时间:2019-06-30

本文共 2412 字,大约阅读时间需要 8 分钟。

hot3.png

 spring环境:

 JOB类

package com.chenjun.quartz_1.springenv;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class SimpleJob extends QuartzJobBean{	@Override	protected void executeInternal(JobExecutionContext context) throws JobExecutionException	{		String message = context.getJobDetail().getJobDataMap().getString("message");		System.out.println(message);	}}

JobDetail类

package com.chenjun.quartz_1.springenv;import java.text.ParseException;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.quartz.CronExpression;import org.quartz.CronTrigger;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.StatefulJob;import org.quartz.impl.StdScheduler;public class CronJobDetail implements StatefulJob{	/*** 日志 */	private static final Log LOG = LogFactory.getLog(StatefulJob.class);			public void execute(JobExecutionContext context) throws JobExecutionException	{		StdScheduler stdScheduler = (StdScheduler)context.getScheduler();		CronTrigger cronTrigger = (CronTrigger)context.getTrigger();		System.out.println("JOB执行.."+cronTrigger.getCronExpression());				CronTrigger  trigger = null;		try		{			trigger = (CronTrigger) stdScheduler.getTrigger("cronJobTrigger", Scheduler.DEFAULT_GROUP);						CronTrigger newTriggerIns = new CronTrigger();			newTriggerIns.setJobName(cronTrigger.getJobName());			newTriggerIns.setName("abc");			//模拟从数据库里面查出的时间表达式			newTriggerIns.setCronExpression(new CronExpression("0/5 * * * * ?"));			stdScheduler.rescheduleJob("cronJobTrigger", null, newTriggerIns);		}		catch (SchedulerException e)		{			e.printStackTrace();		}		catch (ParseException e)		{			e.printStackTrace();		}	}}

 启动类:

package com.chenjun.quartz_1.springenv;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class SimpleSpringQuartz{	public static void main(String[] args)	{		ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml");	}}

结果:

111423_7ve6_2338224.png

搞定了

转载于:https://my.oschina.net/u/2338224/blog/968172

你可能感兴趣的文章
springIOC、AOP的一些注解
查看>>
用为知笔记发博客
查看>>
Windows 8下完美使用Virtual PC 2007(virtual pc 2007 64 win8 兼容性)
查看>>
JavaScript中函数参数的值传递和引用传递
查看>>
面向对象高级编程(上)-- 第二周学习笔记(Boolan)
查看>>
主城地图1.0(4.7)
查看>>
其他数据类型转换成String
查看>>
SWAP_JOIN_INPUTS Oracle Hint(处理hash join强制大表(segment_size大)作为被驱动表)
查看>>
AI历史和哲学基础浅谈
查看>>
java项目显示红叉,程序却没有错误
查看>>
angularJS遇到的坑
查看>>
异常处理汇总-数据库系列
查看>>
Linux安装 jdk&maven
查看>>
msxfs.dll函数加载代码
查看>>
作业——10 分布式文件系统HDFS 练习
查看>>
前端知识汇总【转】
查看>>
Python With 用法
查看>>
Little C Loves 3 I
查看>>
javascript作用域、闭包、对象与原型链
查看>>
快速幂
查看>>