`
Callan
  • 浏览: 736774 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Quartz任务调度在web中的简单使用

    博客分类:
  • Java
阅读更多

常常会在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>

 

 

16
0
分享到:
评论

相关推荐

    quartz任务调度使用手册

    在“quartz任务调度使用手册”中,您会找到以下关键知识点: 1. **Quartz基本概念**: - **Job**:这是执行的任务实体,包含具体的业务逻辑。开发者需要创建Job类并实现`org.quartz.Job`接口。 - **Trigger**:...

    quartz任务调度框架简单实用小demo

    本“quartz任务调度框架简单实用小demo”旨在帮助开发者快速理解和应用Quartz。 1. **Quartz基本概念** - **Job**: 任务的基本单元,代表一个需要执行的工作。 - **Trigger**: 触发器,决定Job何时被执行。 - **...

    Spring+Quartz实现任务调度的小例子

    在IT行业中,任务调度是一项关键功能,特别是在大型分布式系统中,它允许程序在特定时间执行预定义的任务。Spring框架和Quartz是两个广泛使用的工具,它们可以协同工作以实现复杂和灵活的任务调度。本篇文章将深入...

    Quartz 定时任务web使用

    本篇将重点介绍如何在Web环境中集成并使用Quartz,以及相关的核心概念和技术。 1. **Quartz基本概念** - **Job**:代表一个具体的任务,它定义了任务要执行的操作。 - **Trigger**:触发器,定义了任务何时开始...

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

    与Quartz.NET结合使用,我们可以轻松地将定时任务调度服务包装为一个Windows服务,这样即使在没有用户登录的情况下,也可以持续运行我们的任务调度。 在"基于quartz.net+TopShelf的任务调度源码"中,开发者可能已经...

    Quartz.net作业调度自定义定时执行任务多任务执行c#

    在"Quartz.net作业调度自定义定时执行任务多任务执行c#"这个主题中,我们将深入探讨如何使用Quartz.NET来实现自定义的定时任务,以及如何处理多任务执行。 首先,我们需要理解Quartz.NET的基本概念。在Quartz.NET中...

    使用Quartz.net v3.0.7.0的任务调度

    总结,Quartz.NET v3.0.7.0提供了强大的任务调度功能,通过QuartzDemo项目,你可以深入理解其工作原理,并将其应用于实际项目中,实现灵活、高效的任务调度。在实践中,需要注意合理设计作业和触发器,确保任务的...

    quartz 定时任务调度

    在“quartz 定时任务调度”这个主题中,我们将深入探讨Quartz的主要特性、如何使用cron表达式以及在MVC版本中的应用,同时也会提及插件部署。 1. **Quartz简介** Quartz是一个开源的作业调度库,它允许开发人员将...

    spring+mybatis+quartz任务调度实例和spring+quartz任务调度实例

    里面包含了两个工程项目: 1.Java project工程(含jar包,JDK1.6)。 是spring+quartz的任务调度实例。 2.Java web工程(含jar包,JDK1.7)。 spring+mybatis+quartz任务调度实例

    Spring Quartz 任务调度

    这个框架是 Spring 和 Quartz Scheduler 的集成,提供了与 Spring 框架的无缝集成,使得在 Spring 应用程序中使用 Quartz 变得非常简单。 ### 1. Quartz Scheduler 简介 Quartz 是一个开源的作业调度框架,可以...

    springMVC+quartz任务调度

    SpringMVC 是一个用于构建 Web 应用程序的轻量级、模型-视图-控制器(MVC)框架,而 Quartz 是一个开源的任务调度库,能够帮助开发者在应用程序中实现定时任务的管理。接下来,我们将深入探讨这两个框架如何协同工作...

    quartzDemo任务调度例子

    Quartz是Java领域一款强大的开源任务调度框架,它允许开发者...通过研究和理解这个示例,你可以掌握如何在自己的Java应用中使用Quartz进行任务调度,无论是简单的周期性任务还是复杂的定时策略,Quartz都能轻松应对。

    quartz定时任务,在web项目中的使用方法

    在Web项目中使用Quartz,可以实现后台任务的自动化执行,比如数据同步、日志清理、发送邮件等,无需用户手动触发。下面将详细介绍如何在Web项目中集成和使用Quartz。 1. **集成Quartz** - 首先,你需要在项目中...

    springboot-quartz任务调度

    SpringBoot与Quartz结合使用,可以构建强大的定时任务执行系统,尤其在企业级应用中,对于数据处理、定期报告、清理任务等需求有着广泛的应用。本文将深入探讨SpringBoot集成Quartz的相关知识点,并结合前端技术如...

    Quartz(作业调度)

    4. **Web App中的Quartz**:在Web应用中使用Quartz,需要注意线程安全和应用重启问题。通常,我们会将Scheduler配置为后台运行,即使Web服务器重启,也能恢复之前的状态。同时,利用Spring的AOP和Transaction ...

    spring集成quartz 任务调度

    Spring集成Quartz是一款高效的任务调度框架,用于在Java应用程序中执行计划、周期性的任务。Quartz与Spring的结合,使得我们可以充分利用Spring的依赖注入(DI)和AOP特性,简化了任务调度的复杂性。 首先,Quartz...

    quartz定时任务调度

    在基于Web的开发环境中,Quartz可以很好地集成到Spring等框架中,实现灵活的任务调度。 Quartz的核心概念包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job代表实际要执行的任务,Trigger则定义了何时...

Global site tag (gtag.js) - Google Analytics