Spring4 quartz job xml configuration

2024-02-21 19:38

本文主要是介绍Spring4 quartz job xml configuration,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

 1. 定义job details

public class NotifyJobProcessor extends JobProcessor {private static final Log LOG = LogFactory.getLog(NotifyJobProcessor.class);public NotifyJobProcessor() {}@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {String jobName = UploadType.NOTIFY.name();LOG.debug("%s Job is running ......", jobName);Channel channel = getChannelFromContext(context);try {if (channel != null && channel.isWritable()) {UploadHeartbeat heartbeat = new UploadHeartbeat(UploadType.NOTIFY);UploadFunction notifyFunction = new UploadFunction(heartbeat);UploadFrame frame = new UploadFrame(notifyFunction);channel.writeAndFlush(frame);return;}}catch (Exception e) {LOG.error("Send %s Message failed !!!", jobName);e.printStackTrace();}LOG.info("Channel is not active or null for %s Job, not need run it any more.", jobName);// channel is not active, then disable triggerdisableTrigger(jobName);}}

 jobprocessor定义:

public abstract class JobProcessor implements Job {private static final Log LOG = LogFactory.getLog(JobProcessor.class);protected Channel getChannelFromContext(JobExecutionContext context) {Channel channel = null;try {Scheduler schedule = context.getScheduler();SchedulerContext scheduleContext = schedule.getContext();channel = (Channel) scheduleContext.get("channel");}catch (SchedulerException e) {LOG.error("get Channel in Job Execution Context failed !!!", e);e.printStackTrace();}return channel;}protected void disableTrigger(String jobName) {try {LOG.info("Going to remove %s Job", jobName);UploadJobManager.getInstance().unTrigger(jobName);}catch (SchedulerException e) {LOG.error("Untrigger %s Job failed !!!", jobName);e.printStackTrace();}}
}

 

 

 2. 配置job details

	<!-- For times when you need more complex processing, passing data to the scheduled job --><bean name="notify.job.processor.detail"  class="org.springframework.scheduling.quartz.JobDetailFactoryBean"><property name="jobClass" value="com.eifesun.monitor.upload.uploader.processor.NotifyJobProcessor" /><property name="durability" value="true" /></bean>

 

 

 3.配置job trigger

  变量

	 <bean id="heartbeatSecond" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"><property name="targetObject" ref="upload.setting"/><property name="targetMethod" value="getSendHeartBeatSecond"/></bean>   

 trigger

	<bean id="notify.job.processor.trigger"  class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"><property name="jobDetail" ref="notify.job.processor.detail" /><property name="startDelay" value="5" /><property name="repeatInterval" value="#{heartbeatSecond}" /></bean>

 

 

 4.配置job scheduler

<bean id="job.processor.scheduler"  class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="autoStartup" value="false"/><property name="jobDetails"><list><ref bean="notify.job.processor.detail" /></list></property><property name="triggers"><list><ref bean="notify.job.processor.trigger" /></list></property></bean> 

 

 

最后,

如果job中有外部依赖,可以这样配置

	<bean name="report.job.processor.detail" class="org.springframework.scheduling.quartz.JobDetailFactoryBean"><property name="jobClass"value="com.eifesun.monitor.upload.uploader.processor.ReportJobProcessor" /><property name="jobDataMap"><map><entry key="inverterRepo" value-ref="inverter.repo" /><entry key="deviceRepo" value-ref="device.repo" /></map></property><property name="durability" value="true" /></bean>  

 

 

这篇关于Spring4 quartz job xml configuration的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/732852

相关文章

Spring Boot 集成 Quartz 使用Cron 表达式实现定时任务

《SpringBoot集成Quartz使用Cron表达式实现定时任务》本文介绍了如何在SpringBoot项目中集成Quartz并使用Cron表达式进行任务调度,通过添加Quartz依赖、创... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启

SpringBoot中配置文件pom.xml的使用详解

《SpringBoot中配置文件pom.xml的使用详解》SpringBoot的pom.xml文件是Maven项目的核心配置文件,用于定义项目的依赖、插件、构建配置等信息,下面小编就来和大家详细介绍一... 目录1. 基本结构2. 关键部分详解2.1 <modelVersion>2.2 项目坐标2.3 <p

Java实现XML与JSON的互相转换详解

《Java实现XML与JSON的互相转换详解》这篇文章主要为大家详细介绍了如何使用Java实现XML与JSON的互相转换,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. XML转jsON1.1 代码目的1.2 代码实现2. JSON转XML3. JSON转XML并输出成指定的

Pycharm安装报错:Cannot detect a launch configuration解决办法

《Pycharm安装报错:Cannotdetectalaunchconfiguration解决办法》本文主要介绍了Pycharm安装报错:Cannotdetectalaunchconfigur... 本文主要介绍了Pycharm安装报错:Cannot detect a launch configuratio

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

MySQL 中的服务器配置和状态详解(MySQL Server Configuration and Status)

《MySQL中的服务器配置和状态详解(MySQLServerConfigurationandStatus)》MySQL服务器配置和状态设置包括服务器选项、系统变量和状态变量三个方面,可以通过... 目录mysql 之服务器配置和状态1 MySQL 架构和性能优化1.1 服务器配置和状态1.1.1 服务器选项

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

解决Spring运行时报错:Consider defining a bean of type ‘xxx.xxx.xxx.Xxx‘ in your configuration

《解决Spring运行时报错:Considerdefiningabeanoftype‘xxx.xxx.xxx.Xxx‘inyourconfiguration》该文章主要讲述了在使用S... 目录问题分析解决方案总结问题Description:Parameter 0 of constructor in x

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W