常常会在Web应用中需要启动一个自己写的服务,比如说刷新主页,统计数据等,下面提供一种简单的方式.
作业类 :
通过实现 org.quartz.job 接口 , 覆盖了 execute(JobExecutionContext context) 方法。
这个方法可以包含我们想要执行的任何代码
package com;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class Job1 implements Job {
public Job1() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("job1-" + new Date());
}
}
package com;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class Job2 implements Job {
public Job2() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("job2-" + new Date());
}
}
编写quartz.properties文件,这个文件的默认名称就是quartz.properties,如果启动项目的时候,Quartz没有在工程中找到该文件,
就会从自己的jar包下面读取其默认的properties文件
quartz.properties
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadPriority = 4
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
然后编写quartz_job.xml
<?xml version="1.0" encoding="UTF-8"?>
<quartz>
<job>
<job-detail>
<name>job1</name>
<group>job</group>
<job-class>com.Job1</job-class>
</job-detail>
<trigger>
<cron>
<name>t1</name>
<group>job</group>
<job-name>job1</job-name>
<job-group>job</job-group>
<cron-expression>0/10 * * * * ?</cron-expression>
</cron>
</trigger>
</job>
<job>
<job-detail>
<name>job2</name>
<group>job</group>
<job-class>com.Job2</job-class>
</job-detail>
<trigger>
<cron>
<name>t2</name>
<group>job</group>
<job-name>job2</job-name>
<job-group>job</job-group>
<cron-expression>0/20 * * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>
<cron-expression>0/20 * * * * ?</cron-expression>
Cron 表达式包括以下 7 个字段:秒 分 小时 月内日期 月 周内日期 年(可选字段)
意思是:从0秒开始计算,安排任务每 20 秒执行一次。
比如说现在是5点10分18秒启动的服务,它会从0秒(10分整)开始计算,到5点10分20秒执行,那么会先执行job2,接下来过10秒执行job1,过20秒执行job2.....
在配置文件中把jobdetail和trigger都作了定义并组合成一个job。
最后修改一下web.xml。
<servlet>
<servlet-name>quartz</servlet-name>
<servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<init-param>
<param-name>config-file</param-name>
<param-value>/quartz.properties</param-value>
</init-param>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
也可以使用监听器
<context-param>
<param-name>config-file</param-name>
<param-value>/quartz.properties</param-value>
</context-param>
<context-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>
org.quartz.ee.servlet.QuartzInitializerListener
</listener-class>
</listener>
分享到:
相关推荐
在“quartz任务调度使用手册”中,您会找到以下关键知识点: 1. **Quartz基本概念**: - **Job**:这是执行的任务实体,包含具体的业务逻辑。开发者需要创建Job类并实现`org.quartz.Job`接口。 - **Trigger**:...
本“quartz任务调度框架简单实用小demo”旨在帮助开发者快速理解和应用Quartz。 1. **Quartz基本概念** - **Job**: 任务的基本单元,代表一个需要执行的工作。 - **Trigger**: 触发器,决定Job何时被执行。 - **...
在IT行业中,任务调度是一项关键功能,特别是在大型分布式系统中,它允许程序在特定时间执行预定义的任务。Spring框架和Quartz是两个广泛使用的工具,它们可以协同工作以实现复杂和灵活的任务调度。本篇文章将深入...
与Quartz.NET结合使用,我们可以轻松地将定时任务调度服务包装为一个Windows服务,这样即使在没有用户登录的情况下,也可以持续运行我们的任务调度。 在"基于quartz.net+TopShelf的任务调度源码"中,开发者可能已经...
本篇将重点介绍如何在Web环境中集成并使用Quartz,以及相关的核心概念和技术。 1. **Quartz基本概念** - **Job**:代表一个具体的任务,它定义了任务要执行的操作。 - **Trigger**:触发器,定义了任务何时开始...
在"Quartz.net作业调度自定义定时执行任务多任务执行c#"这个主题中,我们将深入探讨如何使用Quartz.NET来实现自定义的定时任务,以及如何处理多任务执行。 首先,我们需要理解Quartz.NET的基本概念。在Quartz.NET中...
总结,Quartz.NET v3.0.7.0提供了强大的任务调度功能,通过QuartzDemo项目,你可以深入理解其工作原理,并将其应用于实际项目中,实现灵活、高效的任务调度。在实践中,需要注意合理设计作业和触发器,确保任务的...
在“quartz 定时任务调度”这个主题中,我们将深入探讨Quartz的主要特性、如何使用cron表达式以及在MVC版本中的应用,同时也会提及插件部署。 1. **Quartz简介** Quartz是一个开源的作业调度库,它允许开发人员将...
里面包含了两个工程项目: 1.Java project工程(含jar包,JDK1.6)。 是spring+quartz的任务调度实例。 2.Java web工程(含jar包,JDK1.7)。 spring+mybatis+quartz任务调度实例
这个框架是 Spring 和 Quartz Scheduler 的集成,提供了与 Spring 框架的无缝集成,使得在 Spring 应用程序中使用 Quartz 变得非常简单。 ### 1. Quartz Scheduler 简介 Quartz 是一个开源的作业调度框架,可以...
SpringMVC 是一个用于构建 Web 应用程序的轻量级、模型-视图-控制器(MVC)框架,而 Quartz 是一个开源的任务调度库,能够帮助开发者在应用程序中实现定时任务的管理。接下来,我们将深入探讨这两个框架如何协同工作...
Quartz是Java领域一款强大的开源任务调度框架,它允许开发者...通过研究和理解这个示例,你可以掌握如何在自己的Java应用中使用Quartz进行任务调度,无论是简单的周期性任务还是复杂的定时策略,Quartz都能轻松应对。
在Web项目中使用Quartz,可以实现后台任务的自动化执行,比如数据同步、日志清理、发送邮件等,无需用户手动触发。下面将详细介绍如何在Web项目中集成和使用Quartz。 1. **集成Quartz** - 首先,你需要在项目中...
SpringBoot与Quartz结合使用,可以构建强大的定时任务执行系统,尤其在企业级应用中,对于数据处理、定期报告、清理任务等需求有着广泛的应用。本文将深入探讨SpringBoot集成Quartz的相关知识点,并结合前端技术如...
4. **Web App中的Quartz**:在Web应用中使用Quartz,需要注意线程安全和应用重启问题。通常,我们会将Scheduler配置为后台运行,即使Web服务器重启,也能恢复之前的状态。同时,利用Spring的AOP和Transaction ...
Spring集成Quartz是一款高效的任务调度框架,用于在Java应用程序中执行计划、周期性的任务。Quartz与Spring的结合,使得我们可以充分利用Spring的依赖注入(DI)和AOP特性,简化了任务调度的复杂性。 首先,Quartz...
在基于Web的开发环境中,Quartz可以很好地集成到Spring等框架中,实现灵活的任务调度。 Quartz的核心概念包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job代表实际要执行的任务,Trigger则定义了何时...