/*
* Copyright 2005 - 2009 Terracotta, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
*/ package org.quartz.examples.example11; import java.util.Date; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException; /**
* <p>
* This is just a simple job that gets fired off many times by example 1
* </p>
*
* @author Bill Kratzer
*/
public class SimpleJob implements Job { private static Logger _log = LoggerFactory.getLogger(SimpleJob.class); // job parameter
public static final String DELAY_TIME = "delay time"; /**
* Empty constructor for job initilization
*/
public SimpleJob() {
} /**
* <p>
* Called by the <code>{@link org.quartz.Scheduler}</code> when a
* <code>{@link org.quartz.Trigger}</code> fires that is associated with
* the <code>Job</code>.
* </p>
*
* @throws JobExecutionException
* if there is an exception while executing the job.
*/
public void execute(JobExecutionContext context)
throws JobExecutionException { // This job simply prints out its job name and the
// date and time that it is running
String jobName = context.getJobDetail().getFullName();
_log.info("Executing job: " + jobName + " executing at " + new Date()); // wait for a period of time
long delayTime =
context.getJobDetail().getJobDataMap().getLong(DELAY_TIME);
try {
Thread.sleep(delayTime);
} catch (Exception e) {
} _log.info("Finished Executing job: " + jobName + " at " + new Date());
} }
/*
* Copyright 2005 - 2009 Terracotta, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*
*/ package org.quartz.examples.example11; import java.util.Date; import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.SchedulerMetaData;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory; import org.slf4j.LoggerFactory;
import org.slf4j.Logger; /**
* This example will spawn a large number of jobs to run
*
* @author James House, Bill Kratzer
*/
public class LoadExample { private int _numberOfJobs = 500; public LoadExample(int inNumberOfJobs) {
_numberOfJobs = inNumberOfJobs;
} public void run() throws Exception {
Logger log = LoggerFactory.getLogger(LoadExample.class); // First we must get a reference to a scheduler
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler(); log.info("------- Initialization Complete -----------"); String schedId = sched.getSchedulerInstanceId(); // schedule 500 jobs to run
for (int count=1; count <= _numberOfJobs; count++) {
JobDetail job = new JobDetail("job" + count, "group1",
SimpleJob.class);
// tell the job to delay some small amount... to simulate work...
long timeDelay = (long) (java.lang.Math.random() * 2500);
job.getJobDataMap().put(SimpleJob.DELAY_TIME, timeDelay);
// ask scheduler to re-execute this job if it was in progress when
// the scheduler went down...
job.setRequestsRecovery(true);
SimpleTrigger trigger = new SimpleTrigger("trigger_" + count, "group_1");
trigger.setStartTime(new Date(System.currentTimeMillis() + 10000L
+ (count * 100)));
sched.scheduleJob(job, trigger);
if (count % 25 == 0) {
log.info("...scheduled " + count + " jobs");
}
} log.info("------- Starting Scheduler ----------------"); // start the schedule
sched.start(); log.info("------- Started Scheduler -----------------"); log.info("------- Waiting five minutes... -----------"); // wait five minutes to give our jobs a chance to run
try {
Thread.sleep(300L * 1000L);
} catch (Exception e) {
} // shut down the scheduler
log.info("------- Shutting Down ---------------------");
sched.shutdown(true);
log.info("------- Shutdown Complete -----------------"); SchedulerMetaData metaData = sched.getMetaData();
log.info("Executed " + metaData.getNumberOfJobsExecuted() + " jobs.");
} public static void main(String[] args) throws Exception { int numberOfJobs = 500;
if (args.length == 1) {
numberOfJobs = Integer.parseInt(args[0]);
}
if (args.length > 1) {
System.out.println(
"Usage: java " +
LoadExample.class.getName() +
"[# of jobs]");
return;
}
LoadExample example = new LoadExample(numberOfJobs);
example.run();
} }

  

Quartz1.8.5例子(十一)的更多相关文章

  1. Quartz1.8.5例子(二)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

  2. scrapy-splash抓取动态数据例子十一

    一.介绍 本例子用scrapy-splash抓取活动树网站给定关键字抓取活动信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 二.网站信息 ...

  3. Quartz1.8.5例子(十四)

    org.quartz.scheduler.instanceName: PriorityExampleScheduler # Set thread count to 1 to force Trigger ...

  4. Quartz1.8.5例子(十)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

  5. Quartz1.8.5例子(九)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

  6. Quartz1.8.5例子(八)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

  7. Quartz1.8.5例子(七)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

  8. Quartz1.8.5例子(六)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

  9. Quartz1.8.5例子(五)

    /* * Copyright 2005 - 2009 Terracotta, Inc. * * Licensed under the Apache License, Version 2.0 (the ...

随机推荐

  1. 标准I/O之实现细节

    在UNIX系统中,标准I/O库最终都要调用文件I/O(read.write等).每个标准I/O流都有一个与其相关联的文件描述符,可以对一个流调用fileno函数以获得其描述符. 注意,fileno不是 ...

  2. Improving Lock Performance in Java--reference

    After we introduced locked thread detection to Plumbr couple of months ago, we have started to recei ...

  3. Java基础知识强化之IO流笔记44:IO流练习之 复制图片的 4 种方式案例

    1. 复制图片的 4 种方式案例: 分析: 复制数据,如果我们知道用记事本打开并能够读懂,就用字符流,否则用字节流. 通过该原理,我们知道我们应该采用字节流. 而字节流有4种方式,所以做这个题目我们有 ...

  4. bash调试执行

    bash -x 调试执行 bash -n 测试语法

  5. SQL Server 2008导入、导出数据库

    SQL Server 2008数据库的导入.导出和Mysql的导出还有一定的区别,刚开始的时候完全摸不到方向,利用Microsoft SQL Server Management Studio进行导入. ...

  6. eclipse上传显示svn上传者名

    这里来记录下eclipse上传显示svn上传者名. 如图所示,修改即可.

  7. VS 2013 Chrome PPAPI 开发环境

    当前系统版本为 Windows 8.1 x64, Chrome 版本为 50.0 1. 准备工作 下载并安装 Python https://www.python.org/download/ * 必须使 ...

  8. python的交代一

    把自己one note上面的摘抄和自己的节选,全部粘贴到博客了,时间宝贵,要得太多,技术栈要慢慢发展,python先放放了,也不知道什么时候正式捡起来. 先把目前养活自己的android.java.c ...

  9. 转载---SQL Server XML基础学习<2>之--FOR XML AUTO/RAW

    本文主要介绍FOR XML 的 AUTO 模式和 RAW 模式 --AUTO 模式将查询结果以嵌套 XML 元素的方式返回.这不能较好地控制从查询结果生成的 XML 的形式. --如果要生成简单的层次 ...

  10. 利用Merge生成或更新新记录

    -- ============================================= -- Author: <华仔> -- Create date: <2016,6,7& ...