文档章节

Spring+Quartz搞定web定时任务

 心扬
发布于 2012/05/11 14:32
字数 508
阅读 1466
收藏 2

导入依赖的包,我用的是maven,pom.xm配置文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.qiny</groupId>
	<artifactId>my</artifactId>
	<version>1.0-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>my</name>

	<properties>
		<struts2.version>2.3.3</struts2.version>
		<spring.version>2.5.2</spring.version>
	</properties>

	<dependencies>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>${struts2.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-config-browser-plugin</artifactId>
			<version>${struts2.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-junit-plugin</artifactId>
			<version>${struts2.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.1.1</version>
		</dependency>

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.5</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.4</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>quartz</groupId>
			<artifactId>quartz</artifactId>
			<version>1.6.0</version>
		</dependency>

		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>maven-jetty-plugin</artifactId>
				<version>6.1.21</version>
				<configuration>
					<scanIntervalSeconds>10</scanIntervalSeconds>
					<scanTargets>
						<scanTarget>src/main/webapp/WEB-INF</scanTarget>
						<scanTarget>src/main/webapp/WEB-INF/web.xml</scanTarget>
						<scanTarget>src/main/resources/struts.xml</scanTarget>
						<scanTarget>src/main/resources/example.xml</scanTarget>
					</scanTargets>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

添加自己的类,执行定时任务

package com.qiny.quartz;

import java.util.Date;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
//需要继承QuartzJobBean
public class MyTask extends QuartzJobBean {

	@Override
	protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
		System.out.println("启动了"+new Date());
	}

}

添加spring配置 文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
	default-autowire="byName">
	<context:component-scan base-package="com.qiny"></context:component-scan>

	<bean name="contentarbitrateservicejob" class="org.springframework.scheduling.quartz.JobDetailBean">
		<property name="jobClass">
			<value>com.qiny.quartz.MyTask</value>
		</property>
		<property name="jobDataAsMap">
			<map>
				<entry key="timeout">
					<value>5</value>
				</entry>
			</map>
		</property>
	</bean>

	<!-- 配置触发器 -->
	<bean id="cronTriggerCA" class="org.springframework.scheduling.quartz.CronTriggerBean">

		<property name="jobDetail">
			<ref bean="contentarbitrateservicejob" />
		</property>
		<!-- 每分钟01秒触发 -->
		<property name="cronExpression">
			<value>1 * * * * ?</value>
		</property>

	</bean>

	<!-- 添加触发器 -->
	<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
			<list>
				<ref local="cronTriggerCA" />
			</list>
		</property>
	</bean>
</beans>

© 著作权归作者所有

粉丝 6
博文 5
码字总数 508
作品 0
海淀
私信 提问
Spring+quartz 做定时任务时,每10分种执行一次,另外有一个要40分钟执行一次

Spring+quartz 做定时任务时,每10分种执行一次,另外有一个要40分钟执行一次,是不是要写两个类?还是用一个类搞定?

天池番薯
2014/12/31
2.7K
1
基于spring+quartz的分布式任务调度

学习地址:http://www.roncoo.com/course/view/e2b459016e2e477dbd5d67c8b23fe86d 课程介绍 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相...

小红牛
2018/04/19
0
0
spring4+quartz2 集群后,启动两个tomcat,方法还是重复执行了,没法同一时刻确保一个任务执行

我目前用spring4+quartz2.2.1搭建了定时任务集群,然后把项目分别部署到两个tomcat下执行,即每个tomcat启动了两个一样代码的定时任务(任务A和任务B,代码一样,触发时间都设置为每分钟执行...

594zzb
2018/01/14
1K
4
Spring+Quartz实现定时任务 (二)

在我们进行软件项目开发的过程中,相信大家在很多时候都会遇到如下业务场景:每天、每周或每月生成相应的业务报表;每天统计系统注册人数;定期清理平台长久不登录的用户等等。遇到这种业务场...

yzbty23
2016/04/21
153
0
spring+quartz

我想实现指定日期做任务(任务数据一天3000条左右) 比如我先规定任务A指定他在下午3点做 再指定任务B 指定在下午6点做以此类推 任务要存到数据库中.要有日志. 这个定时调度怎么做求思路. 现在...

左手键盘右手鼠标
2014/06/03
409
11

没有更多内容

加载失败,请刷新页面

加载更多

崛起于Springboot2.X之5分钟解决单点登陆(53)

SpringBoot2.X心法总纲 1、pom文件依赖 <dependency> <groupId>com.majiaxueyuan</groupId> <artifactId>sso-core</artifactId> <version>1.2.2</version></dependency> 2、......

木九天
14分钟前
13
0
面向对象和面向过程的区别

面向过程 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对...

无名氏的程序员
15分钟前
10
0
OpenStack大事记

2010年7月19日,Rackspace、NASA、Citrix、Dell共同开发并发布OpenStack第一个版本。 2011年10月,Rackspace放弃OpenStack控制权,交由一新成立的OpenStack基金会管理。 2012年5月NASA宣布退...

大别阿郎
15分钟前
8
0
面向对象的简单应用—以交通工具(Vehicle)为列

请定义一个交通工具(Vehicle)的类其中有: 属性: 速度(speed)、 体积(size)等,方法:移动(move())、设置速度(setSpeed(int speed))、加速 speedUp()、减速 speedDown()等。最后在测试类 Ve...

INEVITABLE
26分钟前
7
0
通往艺术家之路

通往艺术家之路 并发编程中,开发者往往需要权衡锁的颗粒粗细,锁住的代码块太大呢会导致可能的线程堵塞,锁的颗粒太细呢又会因为频繁地加锁解锁导致系统用户态内核态的转换从而消费很多时间...

StupidZhe
27分钟前
22
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部