`

利用quartz定时执行某程序

    博客分类:
  • java
 
阅读更多
我们做一个关于quartz的简单例子:定时像控制台打印输出语句

程序结构如下:





web.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<!--直接配置 Quartz调度器 -->
	<servlet>
		<servlet-name>QuartzInitializer</servlet-name>
		<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
		<init-param>
			<param-name>shutdown-on-unload</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>config-file</param-name>
			<param-value>quartz.properties</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
</web-app>




quartz.properties文件内容如下:
#============================================================================
# Configure Main Scheduler Properties  
#============================================================================
org.quartz.scheduler.instanceName = org.quartz.scheduler.instanceId = AUTO
#============================================================================
# Configure ThreadPool  
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 3
org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure Plugins 
#============================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_jobs.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10



quartz_jobs.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<quartz>
<job>
	<job-detail>
		<name>helloWordTask</name>
	  	<group>DEFAULT</group>
	  	<description>测试任务</description>
	  	<job-class>com.yeshun.jobs.HelloWordTask_1</job-class>
	  	<job-data-map allows-transient-data="true">
	   	<entry>
	    	<key>ilisKe</key>
	    	<value>ilisV</value>
	   	</entry>
	   </job-data-map>
 	</job-detail>
	<trigger>
		<cron>
			<name>helloWordTaskCr</name>
			<group>DEFAULT</group>
			<job-name>helloWordTaskJb</job-name>
			<job-group>DEFALUT</job-group>
			<cron-expression>0/10 * * * * ?</cron-expression>
			<!-- 每十秒中执行一次 DEFAULT组中指定的程序-->
		</cron>
	</trigger>
</job>

</quartz>



HelloWorldTask_1.java代码如下:
package com.yeshun.jobs;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.StatefulJob;

public class HelloWordTask_1 implements StatefulJob {

	public void execute(JobExecutionContext jbcontext) throws JobExecutionException {
		
		for(int i=0;i<10;i++){
			System.out.print( "i = "+i +",");
		}
		System.out.println();
	}

}



将项目quartz部署到服务器上即可。
运行结果如下:


  • 大小: 20.4 KB
  • 大小: 94.8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics