首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

采取开发框架quartz调度管理Job

2012-07-03 
采用开发框架quartz调度管理Job1.所需要的第三方包:quartz-1.5.2.jarcommons-beanutils.jarcommons-digest

采用开发框架quartz调度管理Job
1.所需要的第三方包:
quartz-1.5.2.jar
commons-beanutils.jar
commons-digester-1.7.jar
commons-logging.jar
commons-logging-api.jar
log4j-1.2.11.jar?2.定义自己的job:
public class ScanJob implements Job {
?
?public? void SanJob(){}?public void execute(JobExecutionContext arg0) throws JobExecutionException {
??Logger logger = null;
?? logger = Logger.getLogger(this.getClass());???????????????
?? logger.info("test job is running");
??????? System.out.println("======================");
??System.out.println("this is my 11111111111111111 job");
??????? System.out.println("this is my 22222222222222222 job");??????? Date abc=new Date();
?????? System.out.println("-------------"+ abc.getSeconds());
???????
?}
?
?}
?3.在 web.xml加入:<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>2</load-on-startup>
?</servlet>
?
4.在classes的目录下建立quartz.properties
?#============================================================================
# Configure Main Scheduler Properties?
#============================================================================
org.quartz.scheduler.instanceName = QuartzScheduler
#============================================================================
# Configure ThreadPool?
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 1000
#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
?5.在classes的目录下建立quartz_jobs.xml
<?xml version='1.0' encoding='utf-8'?>
<quartz>
?<job>
   <job-detail>
?   <name>test</name>
?   <group>DEFAULT</group>
?   <description>testJobhere</description>
?   <job-class>www.ngc.com.ScanJob</job-class>?  </job-detail>
   <trigger>
???????????? <cron>
????????????????? <name>testTrigger</name>
????????????????? <group>DEFAULT</group>
????????????????? <job-name>test</job-name>
???????????????? <job-group>DEFALUT</job-group>
???????????????? <cron-expression>0/5 * * * * ?</cron-expression>
???????????? </cron>
?????? </trigger>
  </job>
</quartz>?
6.用main方法测试:
public class QuartzMain {?public static void main(String[] args) {
??QuartzMain server = new QuartzMain();
?? try {
??server.startScheduler();
?} catch (SchedulerException e) {
??// TODO Auto-generated catch block
??e.printStackTrace();
?}
? }?protected void startScheduler() throws SchedulerException {? Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
???? JobDetail jobDetail =
????? new JobDetail("testJob", Scheduler.DEFAULT_GROUP, ScanJob.class);
????? //结束时间????
???? long end = System.currentTimeMillis() + 9000L;
??? //执行10次,每3秒执行一次,到9秒后结束
???? SimpleTrigger trigger = new SimpleTrigger("test",null,new Date(),new Date(end),10,3000L);
????? scheduler.scheduleJob(jobDetail, trigger);
???? scheduler.start();??}}??7.在应用服务器中发布,就可以在console看到======================
this is my 11111111111111111 job
this is my 22222222222222222 job
-------------35?日志.<quartz>
<job>
??? <job-detail>
????? <name>jobTest</name>
????? <group>group1</group>
????? <job-class>com.duiduihu.ecf.common.quartz.JobEcecute</job-class> /*任务调度类*/
??? </job-detail>
??? <trigger>
????? <cron>
??????? <name>trigerTest</name>
??????? <group>group1</group>
??????? <job-name>jobTest</job-name>
??????? <job-group>group1</job-group>
???????
??????? <!--每天晚上9点执行-->
??????? <cron-expression>0 0 21 * * ?</cron-expression> /*这个是类似于LINUX的语法的cron-expression,具体在下面详细说明*/
????? </cron>
??? </trigger>
</job>
</quartz>

第四步 创建被调度任务类 内容如下:

package test.quartz;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.util.Date;

public class JobEcecute implements Job {
??? public void execute(JobExecutionContext context) throws
??????????? JobExecutionException {
??????? System.out.println("任务调度成功! - " + new Date());
??? }
}
启动工程,进行测试.?

热点排行