Quartz入门

简介:

    Quartz是一个完全由Java编写的开源作业调度框架,当你想实现定时做些事情的时候,它就派上用场啦!目前Quartz比较稳定的版本是2.2.1,所以我这里就以这个版本为例,如果你使用Quartz2.x系列,那你的spring版本必须3.1版本及以上(假如你需要将Quartz跟Spring整合的话),Quartz并不一定需要跟Spring整合哈,它完全可以脱离Spring单独工作,只是Spring目前太流行,所以大家都喜欢将其他框架往Spring里整合。

      下面是Quartz的一个入门级别的简单示例:

       applicationContext-quartz.xml配置如下:

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"  
  4.     xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans     
  7.              http://www.springframework.org/schema/beans/spring-beans-3.1.xsd     
  8.              http://www.springframework.org/schema/context      
  9.              http://www.springframework.org/schema/context/spring-context-3.1.xsd     
  10.              http://www.springframework.org/schema/aop      
  11.              http://www.springframework.org/schema/aop/spring-aop-3.1.xsd     
  12.              http://www.springframework.org/schema/tx      
  13.              http://www.springframework.org/schema/tx/spring-tx-3.1.xsd     
  14.              http://www.springframework.org/schema/mvc      
  15.              http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd     
  16.              http://www.springframework.org/schema/context      
  17.              http://www.springframework.org/schema/context/spring-context-3.1.xsd"  
  18.     default-autowire="byName" default-lazy-init="true">  
  19.   
  20.     <bean id="taskJob" class="com.yida.framework.test.FirstJob" />  
  21.     <bean id="jobDetail"  
  22.         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
  23.         <property name="group" value="job_work" />  
  24.         <property name="name" value="job_work_name" />  
  25.         <!--false表示等上一个任务执行完后再开启新的任务 -->  
  26.         <property name="concurrent" value="false" />  
  27.         <property name="targetObject">  
  28.             <ref bean="taskJob" />  
  29.         </property>  
  30.         <property name="targetMethod">  
  31.             <value>run</value>  
  32.         </property>  
  33.     </bean>  
  34.     <!-- 调度触发器 -->  
  35.     <bean id="myTrigger"  
  36.         class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  
  37.         <property name="name" value="work_default_name" />  
  38.         <property name="group" value="work_default" />  
  39.         <property name="jobDetail">  
  40.             <ref bean="jobDetail" />  
  41.         </property>  
  42.         <property name="cronExpression">  
  43.             <value>0/3 * * * * ?</value>  
  44.         </property>  
  45.     </bean>  
  46.     <!-- 调度工厂 -->  
  47.     <bean id="scheduler" autowire="no"  
  48.         class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
  49.         <property name="triggers">  
  50.             <list>  
  51.                 <ref bean="myTrigger" />  
  52.             </list>  
  53.         </property>  
  54.     </bean>  
  55. </beans>  

   

    web.xml里配置加载spring的相关配置文件:

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  4.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  5.       
  6.     <context-param>  
  7.         <param-name>contextConfigLocation</param-name>  
  8.         <param-value>  
  9.             classpath:/com/yida/framework/base/config/spring/application*.xml  
  10.         </param-value>  
  11.     </context-param>  

    编写一个简单的任务测试类:

Java代码   收藏代码
  1. package com.yida.framework.test;  
  2.   
  3. public class FirstJob {  
  4.     public void run(String[] args) {  
  5.         System.out.println("我的第一个测试任务。");  
  6.     }  
  7. }  

    最后部署你的项目,启动tomcat,任务就会自动执行啦!

转载:http://iamyida.iteye.com/blog/2263133

目录
相关文章
|
10月前
|
人工智能 搜索推荐 Serverless
《AI 剧本生成与动画创作》解决方案测评报告
《AI 剧本生成与动画创作》解决方案测评报告
|
7月前
|
JSON 数据挖掘 API
深入研究:1688店铺所有商品API详解
在电商业务中,获取1688店铺商品信息对于数据分析和竞品调研至关重要。由于1688官方未提供通用API,可借助第三方数据服务平台实现自动化采集。通过注册账号获取API Key,调用接口并传入店铺ID、页码等参数,即可返回商品标题、价格、销量等JSON格式数据。文中提供了Python示例代码,帮助用户快速上手,注意根据具体平台调整API地址与参数要求。
|
8月前
|
运维 Serverless 云计算
Serverless,云计算3.0阶段
Serverless是一种云计算服务模式,让开发者只需专注于编写业务逻辑代码,无需管理底层基础设施如服务器、存储和网络。相比传统Serverful架构,Serverless降低了运维成本,提高了开发效率,并通过弹性伸缩应对流量峰谷,按实际资源消耗付费,显著降低资源浪费和费用开销。
340 3
Serverless,云计算3.0阶段
|
10月前
|
人工智能 运维 安全
|
11月前
|
存储 安全 Java
别再被绕晕了!5分钟读懂成员变量和局部变量的所有区别!
本文以小明的面试经历为例,详细解析了Java中成员变量与局部变量的区别,包括定义位置、生命周期、默认值、修饰符支持、存储位置及多线程环境下的表现,帮助读者更好地理解和应对面试中的相关问题。
272 3
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
814 3
|
算法
VASA-1:实时音频驱动的数字人说话面部视频生成技术
【6月更文挑战第8天】VASA-1是实时音频驱动的数字人面部视频生成技术,能根据输入音频精准生成匹配的面部表情。具备实时性、高准确性和适应性,适用于虚拟主播、在线教育和影视娱乐等领域。简单示例代码展示了其工作原理。尽管面临情感理解和硬件优化等挑战,但随着技术发展,VASA-1有望在更多领域广泛应用,开启生动数字世界的新篇章。
680 5
|
机器学习/深度学习 自然语言处理 知识图谱
在低资源语境下,大模型如何提高自然语言处理的鲁棒性?
在低资源语境下,大模型如何提高自然语言处理的鲁棒性?
|
关系型数据库 MySQL
你不能不知道的脏写,脏读,不可重复读,幻读超级详细解读
你不能不知道的脏写,脏读,不可重复读,幻读超级详细解读
你不能不知道的脏写,脏读,不可重复读,幻读超级详细解读
|
设计模式
【NI Multisim 14.0原理图文件管理——新建设计文件】
一、原理图文件管理 NI Multisim 14.0 为用户提供了一个十分友好且易用的设计环境,它延续传统的EDA设计模式,各个文件之间互不干扰又互有关联。 本节将介绍有关文件管理的一些基本操作方法,包括新建文件、保存文件、打开文件等,这些都是进行 NI Multisim 14.0 操作基础的知识。 二、新建设计文件 选择菜单栏中的“文件”→“设计”命令或单击“标准”工具栏中的“设计”按钮、或按快捷键<Ctrl>+<N>,系统弹出“New Design(新建设计文件)”对话框,在该对话框中可以创建一个新的原理图设计文件,如图所示。 下面介绍3种新建文件的方法。 1. 空白文件 默认选择“B
1275 0
【NI Multisim 14.0原理图文件管理——新建设计文件】