- 浏览: 1249473 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (193)
- ant/maven (6)
- algorithm (5)
- tomcat/weblogic/jboss (6)
- javascript/jquery (13)
- java (33)
- flex/flash (0)
- JPA/Hibernate/myBatis (18)
- java concurrent (7)
- test (2)
- windows/linux (6)
- java collection (7)
- design pattern (2)
- life/health (3)
- database (12)
- IDE (4)
- spring/ejb (20)
- html/css/ckeditor (7)
- jsp/servlet (3)
- java io (13)
- java security (4)
- jni (0)
- svn/git (2)
- english (2)
- java jmx (1)
- xml (1)
- struts/springmvc (9)
- middleware (2)
- cache (1)
- cglib (3)
最新评论
-
jlotusYo:
博主,真感谢。
Java 密码扩展无限制权限策略文件 -
senninha:
这个。。是api说明吧。。
ScheduledExecutorService 源码分析 -
zoutao2008:
请问大文件如何处理?按你这种方式的话,文件超过200M时就会报 ...
hessian系列之二:上传文件 -
lwj1113:
lwj1113 写道谢谢博主这么细致的demo;在系列五中通过 ...
myBatis系列之五:与Spring3集成 -
lwj1113:
谢谢博主这么细致的demo;在系列五中通过testng测试类跑 ...
myBatis系列之五:与Spring3集成
quartz是一款功能强大的任务调度框架。
1. 往pom.xml文件添加如下依赖:
2. 在类路径下新建quartz-config.properties文件:
以及log4j.properties文件
3. 任务类:
4. 任务调度类:
5. 运行main,查看输出结果。
INFO [QuartzScheduler_Worker-1] (HelloJob.java:27) -Hello World! - Mon Nov 04 20:45:00 CST 2013
参考:
http://quartz-scheduler.org/documentation/quartz-1.x/examples/Example1
1. 往pom.xml文件添加如下依赖:
<properties> <testng.version>6.4</testng.version> <spring.version>3.1.2.RELEASE</spring.version> <quartz.version>1.8.4</quartz.version> <slf4j.api.version>1.7.5</slf4j.api.version> </properties> <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>${testng.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>${quartz.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <!-- Logging support --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.api.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.api.version}</version> </dependency> </dependencies>
2. 在类路径下新建quartz-config.properties文件:
# 线程池实现类 org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool # 线程池大小 org.quartz.threadPool.threadCount=10
以及log4j.properties文件
log4j.rootLogger=debug, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%-5p [%t] (%F:%L) -%m%n
3. 任务类:
public class HelloJob implements Job { private static final Logger log = LoggerFactory.getLogger(HelloJob.class); @Override public void execute(JobExecutionContext context) throws JobExecutionException { log.info("Hello World! - " + new Date()); } }
4. 任务调度类:
public class SchedulerUtil { public static Scheduler getScheduler(String configFile) throws Exception { // 加载配置文件,其中必须指定线程池实现类和大小,否则后续的getScheduler()调用会报错 Properties props = new Properties(); InputStream inStream = SimpleExample.class.getClassLoader() .getResourceAsStream(configFile); props.load(inStream); // 根据指定的配置来实例化StdSchedulerFactory SchedulerFactory sf = new StdSchedulerFactory(props); // 创建一个调度器(默认内存存储) Scheduler sched = sf.getScheduler(); return sched; } }
public class SimpleExample { public void run() throws Exception { // 获取一个调度器实例 SchedulerUtil.getScheduler("quartz-config.properties); // 任务类封装成标准的JobDetail对象: JobDetail job = new JobDetail("job1", "group1", HelloJob.class); // 指定一个运行时刻 Date runTime = TriggerUtils.getEvenMinuteDate(new Date()); // 实例化一个简单触发器,在指定时刻触发 SimpleTrigger trigger = new SimpleTrigger("trigger1", "group1", runTime); // 调度器通过触发器调度指定任务 sched.scheduleJob(job, trigger); // 启动调度器,在这之前,所有任务都不会执行 sched.start(); // 调度线程休眠,让线程池有时间去运行任务 TimeUnit.SECONDS.sleep(70L); // 优雅地关闭调度器 // 参数true表示等所有任务都执行完成后才关闭。 sched.shutdown(true); } public static void main(String[] args) throws Exception { SimpleExample example = new SimpleExample(); example.run(); } }
5. 运行main,查看输出结果。
INFO [QuartzScheduler_Worker-1] (HelloJob.java:27) -Hello World! - Mon Nov 04 20:45:00 CST 2013
参考:
http://quartz-scheduler.org/documentation/quartz-1.x/examples/Example1
发表评论
-
Netty系列之二、Netty组件
2014-10-12 19:55 0Netty主要由以下几个组件构成: Bootstrap o ... -
Netty系列之二:传输方式
2014-09-17 22:35 0NIO (Non-blocking I/O) io.netty ... -
Java正则表达式实例
2014-08-25 22:50 1938题目: 有两个文件context.txt和words ... -
quartz系列之九:存储
2014-08-05 13:16 0这里以1.8.x为例: 任务 ... -
JVM 四种引用
2014-04-24 19:56 17691. 强引用 指通过普通 ... -
Proxy 源码分析
2014-04-21 10:47 0public class Proxy implements ... -
NIO UDP 编程
2014-04-17 23:18 4255和TCP的SocketChannel类似,UDP的Dat ... -
Matcher 源码分析
2014-04-15 14:45 0首先看下接口: public interface Matc ... -
BTrace 使用
2014-03-20 18:03 0简介 Btrace (Byte Trace)是Sun推出的一款 ... -
NIO Socket 编程
2014-04-11 22:48 1663Java NIO (Nonblocking IO)解决了常规I ... -
hessian系列之二:上传文件
2014-02-17 17:16 6225hessian较早版本通过 byte[] 进行文件传输;4.0 ... -
hessian系列之三:与Spring集成
2014-02-17 20:21 17895Spring封装了hessian客户端和服务端的通用代码,把实 ... -
hessian系列之一:Hello world
2014-01-06 20:51 2298Hessian是一个Web Service的轻量级二进制协议, ... -
XStream:自定义转换器
2013-12-30 22:47 0XStream是一款不错的oxm (Object-XML ma ... -
Http连接工具类
2013-12-28 16:13 0public class HttpConnUtil { ... -
Integer源码分析
2013-12-26 19:59 0private static String toU ... -
全排序
2013-12-23 21:02 0写一个函数, 如 foo(String str), 打印出 s ... -
logback系列之四:输出日志到不同文件
2013-12-03 16:25 69035logback系列之一:输出日志到控制台 logback系列之 ... -
Properties 源码分析
2013-11-26 10:32 01. Properties类扩展了Hashtable,用来保存 ... -
logback系列之三:输出日志到文件(滚动)
2013-11-16 23:37 64426logback系列之一:输出日志到控制台 logback系列之 ...
相关推荐
这个"quartz的helloworld"示例旨在教你如何在Tomcat服务器上配置和使用Quartz来定期执行一个简单的任务——每五秒钟打印出"Hello, World!"。 首先,Quartz的核心概念包括Job(工作)和Trigger(触发器)。Job是实际...
这个"quartz helloworld例子"很可能是展示如何在Java项目中配置和使用Quartz库的一个简单教程。下面,我们将深入探讨Quartz的核心概念和如何创建一个Hello World应用。 1. **Quartz简介** Quartz是James House开发...
在这个"一个简单的quartz、spring集成版helloWorld示例演示"中,我们将探讨如何将这两个框架结合使用,实现一个基础的定时任务。 首先,Quartz的集成通常涉及到Spring的`SchedulerFactoryBean`,这个bean负责管理和...
Quartz实例 helloworld
在"一个简单的quartz版helloWorld示例演示"中,我们看到的是一个Web项目,这意味着这个定时任务将在Web应用程序的上下文中运行。项目中可能包含以下关键部分: 1. **Job类**:这是我们要定时执行的任务。在这个例子...
在数据库中导入附件中的tables_mysql.sql表,将本web项目导入(jar包已经附带),修改项目中的quartz.properties配置文件中的...本次定时规则为每分钟的6秒倍数在控制台输出一句helloWorld与当前时间。亲测通过可用。
这是quartz定时器的一个helloworld例子,主要用到的是其中的quartz需要的jar,在lib文件夹中,需要学习的quartz的,可以下载我上传的quartz文档,里面有详细介绍quartz怎么使用。
在 "spring-boot-helloworld.zip" 这个压缩包中,我们很可能是找到了一篇关于 Spring Boot 入门的博客文章示例代码,用于展示如何构建一个简单的 "Hello World" 应用。 在 Spring Boot 中创建一个 "Hello World" ...
SpringBoot HelloWorld 是一个初学者经常会遇到的示例项目,它旨在帮助开发者快速了解并开始使用Spring Boot框架。Spring Boot是由Pivotal团队提供的全新框架,其设计目标是简化新Spring应用的初始搭建以及开发过程...
在这个示例中,描述提到"每分钟的6秒倍数在控制台输出一句helloWorld"。这表明我们的Job类会包含一个`execute`方法,该方法会在满足特定Trigger条件时(即每分钟的6秒、18秒、30秒等)被调用,打印出"helloWorld"。 ...
在Quartz调度器中,`CronTrigger`是一种非常强大的触发机制,它能够根据复杂的日历规则来调度任务,相比于`SimpleTrigger`而言更为灵活。如果你的任务调度需要依据特定的日历概念而不是简单的时间间隔来进行,则`...
JobDetail jobDetail = new JobDetail("job1", "group1", HelloWorld.class); // 创建一个触发器,并命名为 ‘trigger1’,将此触发器设置在 ‘job1’ 上 SimpleTrigger simpleTrigger = new SimpleTrigger(...
例如,你可以创建一个名为`HelloWorldJob`的类,其中包含打印"Hello, World!"的逻辑。 2. **绑定Trigger** Trigger定义了Job的执行策略,如cron表达式或简单触发器。对于简单的定时执行,你可以使用`SimpleTrigger...
首先,定义一个实现 `Job` 接口的类,如 `HelloJob`,它会在执行时输出 "Hello World!": ```java import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; ...
在"quartz_FirstDemo"这个项目中,`HelloWorldJob`类就是我们的Job,它会在`execute`方法中打印一句“Hello, Quartz!”。而Trigger则根据配置决定何时启动这个Job。整个项目可能还包含了配置文件,用于定义Scheduler...
在本项目 "springboot-helloworld" 中,我们将探讨如何使用 SpringBoot 创建一个基础的“Hello, World!”应用。 1. **Spring Initializr** 创建 SpringBoot 项目通常始于 Spring Initializr...
综上所述,"Spring Boot Hello World 入门源代码"演示了如何利用 Spring Boot 快速构建一个返回 JSON 的 Web 服务。这个过程中涉及到的核心概念包括 Spring Boot 框架、RESTful API 设计、HTTP 协议、以及 JSON 数据...
Spring版 timer HelloWorld”这一主题,它是Spring框架与Java定时任务处理的一个简单示例。通过这个实例,我们可以了解如何在Spring应用中使用Timer进行定时任务的执行。 首先,让我们明确什么是Timer。在Java中,...
例如,创建一个打印“Hello, World!”的作业,每隔5分钟执行一次: ```csharp using Quartz; using Quartz.Impl; public class HelloWorldJob : IJob { public void Execute(IJobExecutionContext context) { ...