热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

spring+quartz简单使用笔记

为什么80%的码农都做不了架构师?

为什么80%的码农都做不了架构师?>>>   hot3.png


                           

注意:Spring 3.0以上版本不在使用CronTriggerBean, 请使用CronTriggerFactoryBean。因为在Spring 3.0版本中,内置的Quartz版本是小于2.0的,而spring3.0以上使用的Quartz版本>=2.0接口不兼容, 请选择合适的版本并正确配置,否则会报错。


Quartz的两种使用方法

1.继承org.springframework.scheduling.quartz.QuartzJobBean类的方式

2.POJO + 配置 的方式

(推荐第二种,作业类只是一个简单的POJO,加上配置文件就可以运行,更加灵活!)

两种调度任务触发机制:

1.每隔指定时间则触发一次,对应的调度器为org.springframework.scheduling.quartz.SimpleTriggerBean

2.每到指定时间则触发一次,对应的调度器为org.springframework.scheduling.quartz.CronTriggerBean



package com.dataManager.job;import java.sql.Timestamp;
import java.util.Date;import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;import com.dataManager.service.MonitorOutputService;
import com.dataManager.utility.log.Log4jConfig;
import com.dataManager.utility.log.Log4jConfigFactory;
import com.dataManager.utility.transformat.FormatCalendar;/*** 使用一个简单的pojo */
public class MonitorDeleteJob{private Log4jConfig logger = Log4jConfigFactory.create(MonitorDeleteJob.class);@Autowiredprivate MonitorOutputService monitorOutputService;public void execute() throws JobExecutionException {Date date = new Date();try {int m = monitorOutputService.deleteBeforeDate(FormatCalendar.offsetTime(date, 4, -1));logger.debug((double) m, "", "定期删除监控数据:" + new Timestamp(date.getTime()));} catch (Exception e) {StackTraceElement[] trace = e.getStackTrace();logger.error(null, trace[0].getMethodName(), trace[0].getLineNumber(), e.toString());}}public static void main(String[] args) throws JobExecutionException {MonitorDeleteJob x = new MonitorDeleteJob();x.execute();}
}

======================== 以下不相关===================================

被调度的任务时一个简单的POJO,  execute方法的名字并不是强制规定,只不过刚开始写这段代码的时候,使用第一种方法,实现了InterruptableJob接口,其实不必如此。

在实际使用中一开始获取monitorOutputService的时候采用一下方式获得,这样在测试环境下是正确的,但是在项目正常启动的时候,hibernate开始无限循环的加载映射表与javaBean,导致系统启动超时。

private MonitorOutputService monitorOutputService = (MonitorOutputService) SpringBeanUtil.getSpringBean("monitorOutputService");

public static Object getSpringBean(String springBeanId) {if (UtilValidator.isEmpty(springBeanId)) {return null;}ApplicationContext applicationContext = getBeanFactory();if (applicationContext == null) {return null;}if (!applicationContext.containsBean(springBeanId)) {return null;}return applicationContext.getBean(springBeanId);
}

public static ApplicationContext getBeanFactory() {if (applicationContext == null) {if (!UtilValidator.isExistFileInClassPath(FILENAME_SPRING)) {return null;}applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");}return applicationContext;
}

 错误已经查清。。。有点坑----- 无限循环个applicationContext....hibernate死循环只是表象。。因为实在太多了。

六月 07, 2015 11:11:32 下午 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
信息: Mapping class: com.dataManager.entity.Calculate -> calculate
六月 07, 2015 11:11:32 下午 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
信息: Mapping class: com.dataManager.entity.CalType -> cal_type
六月 07, 2015 11:11:32 下午 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
................





转:https://my.oschina.net/dlam/blog/429115



推荐阅读
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • NotSupportedException无法将类型“System.DateTime”强制转换为类型“System.Object”
    本文介绍了在使用LINQ to Entities时出现的NotSupportedException异常,该异常是由于无法将类型“System.DateTime”强制转换为类型“System.Object”所导致的。同时还介绍了相关的错误信息和解决方法。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
author-avatar
忘不了那个你
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有