Web Application中使用Quartz
来源:互联网 发布:javascript编程精解 编辑:程序博客网 时间:2024/06/07 05:57
有时间简述一下
做过的东西最好能及时记录下来,拖了一个月,都提不起写它的兴趣了,而且有些细节也已经不太想的起来。
下面是我在项目中用到的一个简单案例,并没有全面的讲解Quartz,但是至少可以在程序中跑起来了。要想了解更多的东西,可以去看官方的文档,另外有一本译著也不错,替他打个广告
***********************************************
Quartz Job Scheduling Framework 中 文 版
Chuck Cavaness 著
Chuck Cavaness 著
Unmi(隔叶黄莺) 译
译者博客:http://unmi.blogjava.net/
译者博客:http://unmi.blogjava.net/
***********************************************
继续我的内容。本篇介绍怎么在Web Application中加入Quartz 并执行简单的工作调度。
1) 在web.xml中配置Quartz,使它在装载Application时就启动Quartz
<!-- Start: Quartz servlet configuration -->
<servlet>
<description></description>
<display-name>Quartz Initializer Servlet</display-name>
<servlet-name>QuartzInitializerServlet</servlet-name>
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- End: Quartz servlet configuration -->
2) 在quartz.properties中配置两个参数
#自定义instance name,通常和项目相关,不是关键属性
org.quartz.scheduler.instanceName = myProjectName
#文件名自定,只要有一个对应的文件即可
org.quartz.plugin.jobInitializer.fileNames= quartz-jobs.xml
3) 配置quartz-job.xml
这里定义一个调度器,包括需要调用的job,并设置调用该job的触发器。设置触发器时注意时间的格式。
job可以定义多个,下面例子中只定义了一个。
<?xml version='1.0' encoding='utf-8'?>
<quartz xmlns="http://www.quartzscheduler.org/ns/quartz"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.quartzscheduler.org/ns/quartzhttp://www.quartzscheduler.org/ns/quartz/job_scheduling_data_1_1.xsd"
version="1.1">
<job>
<job-detail>
<name>CollectJob</name>
<group>CollectJobs</group>
<job-class>com.xxx.CollectJob</job-class>
<volatility>false</volatility>
<durability>false</durability>
<recover>false</recover>
</job-detail>
<trigger>
<simple>
<name>CollectTrigger</name>
<group>DEFAULT</group>
<job-name>CollectJob</job-name>
<job-group>DEFAULT</job-group>
<start-time>2008-11-30T10:00:00 AM</start-time>
<!-- repeat indefinitely every day -->
<repeat-count>-1</repeat-count>
<repeat-interval>7200000</repeat-interval>
</simple>
</trigger>
</job>
</quartz>
<quartz xmlns="http://www.quartzscheduler.org/ns/quartz"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.quartzscheduler.org/ns/quartzhttp://www.quartzscheduler.org/ns/quartz/job_scheduling_data_1_1.xsd"
version="1.1">
<job>
<job-detail>
<name>CollectJob</name>
<group>CollectJobs</group>
<job-class>com.xxx.CollectJob</job-class>
<volatility>false</volatility>
<durability>false</durability>
<recover>false</recover>
</job-detail>
<trigger>
<simple>
<name>CollectTrigger</name>
<group>DEFAULT</group>
<job-name>CollectJob</job-name>
<job-group>DEFAULT</job-group>
<start-time>2008-11-30T10:00:00 AM</start-time>
<!-- repeat indefinitely every day -->
<repeat-count>-1</repeat-count>
<repeat-interval>7200000</repeat-interval>
</simple>
</trigger>
</job>
</quartz>
4) 实现com.xxx.CollectJob,定义该job的具体事件
public class CollectJob implements Job {
private static Logger logger = Logger.getLogger(CollectJob.class.getName());
/**
* Get logger for collect job.
*
* @return logger
*/
public static Logger getLogger() {
return logger;
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
long collectorStartTime = System.currentTimeMillis();
logger.info("Collector: " + context.getJobDetail().getName()
+ " started at " + new Date());
* Get logger for collect job.
*
* @return logger
*/
public static Logger getLogger() {
return logger;
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
long collectorStartTime = System.currentTimeMillis();
logger.info("Collector: " + context.getJobDetail().getName()
+ " started at " + new Date());
doSomething();
logger.info("Collector: " + context.getJobDetail().getName()
+ " ended at " + new Date());
long collectorEndTime = System.currentTimeMillis();
logger.info("It costs " + (collectorEndTime - collectorStartTime)
+ " milliseconds.");
}
+ " ended at " + new Date());
long collectorEndTime = System.currentTimeMillis();
logger.info("It costs " + (collectorEndTime - collectorStartTime)
+ " milliseconds.");
}
private void doSomething() {
...
...
}
}
- Web Application中使用Quartz
- Quartz 在Java Web Application中使用
- Quartz 在Java Web Application中使用
- Quartz 在Java Web Application中使用
- Quartz 在Java Web Application中使用 定时任务
- Quartz-Java Web项目中使用Quartz
- 在WEB中,Quartz使用配置文件调用
- 在WEB中,Quartz使用配置文件调用
- [整理]在 Web App 中使用 Quartz 替换 Java 定时器
- 任务调度3-------Web中使用Quartz…
- [原创]web application中使用Profile应该注意的问题
- ASP.NET Web Application 中使用 Unity 依赖注入容器
- web application中使用Profile应该注意的问题
- c# Web Application 中使用FileUpload代替OpenFileDialog
- Web Application 项目中使用ASP.NET 2.0 Profile
- Web Application 项目中使用ASP.NET 2.0 Profile
- ASP.NET Web Application中使用链接文件
- struts1中使用quartz
- Java连接DB2相关
- 串口波特率对通信质量的影响
- Oracle中用Rowid查找和删除重复记录
- sprintf函数的用法
- 修改ubuntu电源管理,加了自己的修改
- Web Application中使用Quartz
- Log4j使用方法
- Linux 信号介绍
- [转载]java中的注释规范
- JSP乱码问题相关
- shell脚本学习-1
- IMF 2010 forecast of world economic growth to 3%
- Apache的prefork模式和worker模式
- magento -- 如何实现多语言的magento cms 页面