`
zxs19861202
  • 浏览: 915222 次
  • 性别: Icon_minigender_1
  • 来自: 湖北—》上海
社区版块
存档分类
最新评论

定时任务 Quartz调度(采用配置文件)

    博客分类:
  • java
阅读更多

采用配置文件方式的Quartz调度:

1、所需的第三方包

commons-beanutils.jar

commons-collections-3.2.jar

commons-digester.jar

commons-logging.jar

jta.jar

quartz.jar

 

2、自定被调度的Job

package com.allen;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class MyJob implements Job {

 /**
  * 需要定时调度的方法
  */
 public void execute(JobExecutionContext arg0) throws JobExecutionException {
  
  System.out.println("我是被定时调度的方法啊,当前时间为:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SS").format(new Date()));

 }

}

 

3.在 web.xml加入:
<servlet>
   <servlet-name>QuartzInitializer</servlet-name>
   <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
   <init-param>
     <param-name>shutdown-on-unload</param-name>
     <param-value>true</param-value>
   </init-param>
   <init-param>
    <param-name>config-file</param-name>
    <param-value>quartz.properties</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
 </servlet>
4.在classes的目录下建立quartz.properties
 #============================================================================
# Configure Main Scheduler Properties 
#============================================================================
org.quartz.scheduler.instanceName = QuartzScheduler
#============================================================================
# Configure ThreadPool 
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 1000
#org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure Plugins
#============================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_jobs.xml
#org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
#org.quartz.plugin.jobInitializer.failOnFileNotFound = true
5.在classes的目录下建立quartz_jobs.xml
<?xml version='1.0' encoding='utf-8'?>
<quartz>
 <job>
   <job-detail>
    <name>test</name>
    <group>DEFAULT</group>
    <description>testJobhere</description>
    <job-class>com.allen.MyJob</job-class>
   </job-detail>
   <trigger>
             <cron>
                  <name>testTrigger</name>
                  <group>DEFAULT</group>
                  <job-name>test</job-name>
                 <job-group>DEFALUT</job-group>
                 <cron-expression>0/5 * * * * ?</cron-expression>
             </cron>
       </trigger>
  </job>
</quartz>
6.用main方法测试:
public class QuartzTest {
 public static void main(String[] args) {
  // TODO 自动生成方法存根
  QuartzTest q=new QuartzTest();
  try {
   q.startScheduler();
  } catch (SchedulerException e) {
   // TODO 自动生成 catch 块
   e.printStackTrace();
  }
 }
 
 protected void startScheduler() throws SchedulerException {
    Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
    JobDetail jobDetail =new JobDetail("testJob", Scheduler.DEFAULT_GROUP, MyJob.class);
        //结束时间    
       long end = System.currentTimeMillis() + 9000L;
      //执行10次,每3秒执行一次,到9秒后结束
       SimpleTrigger trigger = new SimpleTrigger("test",null,new Date(),new Date(end),10,3000L);
       scheduler.scheduleJob(jobDetail, trigger);
       scheduler.start();
    }
}
7.在应用服务器中发布,就可以在console看到调度
 
常用示例:
 
0 0 12 * * ? 每天12点触发
0 15 10 ? * * 每天10点15分触发
0 15 10 * * ? 每天10点15分触发
0 15 10 * * ? * 每天10点15分触发
0 15 10 * * ? 2005 2005年每天10点15分触发
0 * 14 * * ? 每天下午的 2点到2点59分每分触发
0 0/5 14 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发)
0 0/5 14,18 * * ? 每天下午的 2点到2点59分(整点开始,每隔5分触发)
每天下午的 18点到18点59分(整点开始,每隔5分触发)
0 0-5 14 * * ? 每天下午的 2点到2点05分每分触发
0 10,44 14 ? 3 WED 3月分每周三下午的 2点10分和2点44分触发
0 15 10 ? * MON-FRI 从周一到周五每天上午的10点15分触发
0 15 10 15 * ? 每月15号上午10点15分触发
0 15 10 L * ? 每月最后一天的10点15分触发
0 15 10 ? * 6L 每月最后一周的星期五的10点15分触发
0 15 10 ? * 6L 2002-2005 从2002年到2005年每月最后一周的星期五的10点15分触发
0 15 10 ? * 6#3 每月的第三周的星期五开始触发
0 0 12 1/5 * ? 每月的第一个中午开始每隔5天触发一次
0 11 11 11 11 ? 每年的11月11号 11点11分触发(光棍节)
分享到:
评论
2 楼 s1y22j333 2014-09-10  
  
1 楼 s1y22j333 2014-09-10  
<table>asdf</table>

相关推荐

    springboot整合quartz定时任务yml文件配置方式

    至此,我们已经成功地在Spring Boot应用中整合了Quartz定时任务,通过YAML配置文件完成了基本的设置。同时,借助Spring Cloud Alibaba的Nacos和Dubbo,实现了服务发现和注册,为分布式环境下的任务调度打下了基础。...

    ASP.NET使用Quartz.NET实现定时任务调度

    2. 调度配置文件(quartz.config):用于配置Quartz.NET的存储、线程池等参数。 3. 作业类文件:定义具体的定时任务。 4. 触发器配置文件或代码:定义任务的触发规则。 5. 日志文件或日志处理代码:用于记录任务执行...

    quartz 定时任务调度

    接下来,需要在 Spring 配置文件中声明这个任务 Bean。使用 `&lt;bean&gt;` 标签定义 `myJob`,并指定它的全限定类名 `com.mucfc.MyJob`。 然后,使用 `MethodInvokingJobDetailFactoryBean` 来创建一个 Job 实例。这个 ...

    Springboot2-Quartz 后台可动态配置的定时任务

    本项目“Springboot2-Quartz 后台可动态配置的定时任务”是基于SpringBoot 2.x版本与Quartz Scheduler整合的一个示例,它展示了如何在后台管理系统中动态地创建、更新和删除定时任务,以及监控这些任务的状态,为...

    转:spring多个定时任务quartz配置

    5. **配置Spring**:在Spring的配置文件中,我们需要声明`SchedulerFactoryBean`来初始化Quartz调度器,并定义`@Component`或`&lt;bean&gt;`来管理Job和Trigger。 ```xml ...

    springboot+quartz 动态化配置定时任务

    而Quartz是一个开源的作业调度框架,支持复杂的定时任务调度。通过整合SpringBoot和Quartz,我们可以利用Spring的自动配置能力,方便地在Spring应用中集成定时任务功能。 二、Quartz动态配置 1. 引入依赖:首先,在...

    Java使用quartz实现任务调度定时任务

    在`task`目录下,可能存在其他与任务相关的类或配置文件,比如具体的Job实现类、配置文件等。这些文件可以帮助我们更详细地了解任务的执行逻辑和配置。 总的来说,使用Quartz在Java中实现任务调度涉及以下步骤: 1....

    spring quartz通过xml配置实现定时任务demo

    本示例将详细讲解如何通过XML配置文件来实现Spring与Quartz的集成,从而构建一个定时任务Demo。 首先,Quartz是开源的作业调度框架,允许应用程序在预定义的时间执行特定的任务。Spring框架则提供了强大的依赖注入...

    定时任务quartz及教程

    Quartz是Java领域中广泛应用的一款开源的作业调度框架,它允许开发者在应用程序中安排复杂的定时任务。本教程将深入探讨Quartz的核心概念、配置、API使用以及如何在实际项目中集成和管理定时任务。 一、Quartz核心...

    spring整合quartz定时任务调度

    Spring框架作为Java领域广泛使用的轻量级框架,提供了与第三方库Quartz的整合,使得开发者能够轻松地在Spring应用中实现复杂的定时任务调度。Quartz是一款开源的作业调度框架,支持丰富的调度策略,可以满足各种定时...

    quartz定时调度器动态修改时间不用配置文件

    这正是“quartz定时调度器动态修改时间不用配置文件”这一主题的核心内容。 首先,理解Quartz的基本概念是很重要的。Quartz通过Job(任务)和Trigger(触发器)两个核心组件来实现任务调度。Job是实际要执行的任务...

    spring多个定时任务quartz配置

    在Spring框架中,Quartz是一个强大的任务调度库,可以用于执行定时任务。本文将深入探讨如何在Spring中配置Quartz以实现多个定时任务。 首先,我们需要理解Quartz的基本概念。Quartz是一个开源的工作调度框架,它...

    SpringBoot 整合Quartz(集群)实现定时任务调度

    SpringBoot整合Quartz实现定时任务调度是企业级应用中常见的需求,主要用于自动化执行某些周期性的任务,例如数据备份、报表生成、系统维护等。Quartz是一个功能强大的开源作业调度框架,能够灵活地定义任务和调度...

    Spring quartz 定时任务调度

    Spring Quartz 是一个强大的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Spring框架中集成Quartz,可以充分利用Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming...

    Quartz定时任务框架

    Quartz是一款开源的作业调度框架,它为Java应用程序提供了强大的定时任务管理能力。作为一个专业的IT行业大师,我将深入解析Quartz的核心概念、工作原理以及如何实现简单的定时任务。 Quartz的主要功能在于允许...

    Springboot整合Quartz实现定时任务数据库动态配置

    Spring Boot作为一个轻量级的Java框架,提供了与各种定时任务库集成的能力,其中Quartz是一个广泛应用的开源作业调度框架。本篇文章将详细探讨如何在Spring Boot项目中整合Quartz,并通过MySQL数据库实现定时任务的...

    基于SSM+quartz的定时任务管理demo

    SpringBoot提供了对Quartz的自动配置,只需添加相关依赖,配置文件中设置一些属性,即可快速启动定时任务服务。 **8. 管理界面** 为了方便管理和监控定时任务,可以开发一个Web界面,利用Quartz提供的API查询Job和...

    Quartz 定时任务web使用

    Quartz 是一个开源的作业调度框架,常用于Java应用程序中实现定时任务的管理。它提供了丰富的API和功能,使得开发者可以灵活地定义和控制任务的执行。本篇将重点介绍如何在Web环境中集成并使用Quartz,以及相关的...

Global site tag (gtag.js) - Google Analytics