2 * <p>文件名称: HelloJob.java </p>
3 * <p>文件描述: quartz 之 helloWorld</p>
4 * <p>版权所有: 版权所有(C)2001-2004</p>
5 * <p>公 司: </p>
6 * <p>内容摘要: 无</p>
7 * <p>其他说明: 无</p>
8 * <p>创建日期:2007-1-11</p>
9 * <p>完成日期:2007-1-11</p>
10 * <p>修改记录1: // 修改历史记录,包括修改日期、修改者及修改内容</p>
11 * <p>资源 quartz: http://www.opensymphony.com/quartz
12 * <pre>
13 * 修改日期:
14 * 版 本 号:
15 * 修 改 人:
16 * 修改内容:
17 * </pre>
18 * <p>修改记录2:…</p>
19 * @version 1.0
20 * @author yangwei
21 */
22
23 import java.text.ParseException;
24
25 import org.apache.log4j.PropertyConfigurator;
26 import org.quartz. * ;
27 public class HelloJob implements Job {
28 public HelloJob() {
29 }
30 public void execute(JobExecutionContext context)
31 throws JobExecutionException
32 {
33 // 在这里写业务处理代码。什么,你不知道?那你别问我!!:-<
34 System.out.println( " Hello World!! " );
35 }
36
37 public static void main(String[] args) throws SchedulerException, ParseException
38 {
39 PropertyConfigurator.configure( " ./log4.properties " ); // 加载log4的配置文件
40 SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
41 Scheduler sched = schedFact.getScheduler(); // 获取调度管理器
42 JobDetail jobDetail = new JobDetail( " myJob " , sched.DEFAULT_GROUP, HelloJob. class ); // 创建工作
43 CronTrigger trigger = new CronTrigger( " myTrigger " , " test " , " 0/10 * * * * ? " ); // 创建触发器,“0/10 * * * * ?”表示每10秒钟就执行一次,有关表达式的说明请参阅quartz的api文档。
44 sched.scheduleJob(jobDetail, trigger); // 添加到调度管理器中
45 sched.start(); // 启动调度管理器
46 }
47 }
48
49
#log4j.properties
log4j.rootLogger=debug, A1 , B1
#RollingFileAppender
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=log.txt
log4j.appender.A1.MaxFileSize=100KB
log4j.appender.A1.MaxBackupIndex=1
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
#backup need:debug, A1 ,R
#log4j.appender.R=org.apache.log4j.RollingFileAppender
#log4j.appender.R.File=backup.log
#log4j.appender.R.MaxFileSize=100KB
#log4j.appender.R.MaxBackupIndex=1
#log4j.appender.R.layout=org.apache.log4j.TTCCLayout
#ConsoleAppender
log4j.appender.B1=org.apache.log4j.ConsoleAppender
log4j.appender.B1.layout=org.apache.log4j.PatternLayout
log4j.appender.B1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n
log4j.appender.B1.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
CronTrigger 的用法 :
org.quartz
Class CronTrigger
java.lang.Object org.quartz.Trigger org.quartz.CronTrigger
- All Implemented Interfaces:
- Cloneable, Comparable, Serializable
- public class CronTrigger
- extends Trigger
A concrete
that is used to fire a Trigger
at given moments in time, defined with Unix 'cron-like' definitions. JobDetail
For those unfamiliar with "cron", this means being able to create a firing schedule such as: "At 8:00am every Monday through Friday" or "At 1:30am every last Friday of the month".
The format of a "Cron-Expression" string is documented on the CronExpression
class.
Here are some full examples:
Expression | Meaning | |
---|---|---|
"0 0 12 * * ?" |
Fire at 12pm (noon) every day |
|
"0 15 10 ? * *" |
Fire at 10:15am every day |
|
"0 15 10 * * ?" |
Fire at 10:15am every day |
|
"0 15 10 * * ? *" |
Fire at 10:15am every day |
|
"0 15 10 * * ? 2005" |
Fire at 10:15am every day during the year 2005 |
|
"0 * 14 * * ?" |
Fire every minute starting at 2pm and ending at 2:59pm, every day |
|
"0 0/5 14 * * ?" |
Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day |
|
"0 0/5 14,18 * * ?" |
Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day |
|
"0 0-5 14 * * ?" |
Fire every minute starting at 2pm and ending at 2:05pm, every day |
|
"0 10,44 14 ? 3 WED" |
Fire at 2:10pm and at 2:44pm every Wednesday in the month of March. |
|
"0 15 10 ? * MON-FRI" |
Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday |
|
"0 15 10 15 * ?" |
Fire at 10:15am on the 15th day of every month |
|
"0 15 10 L * ?" |
Fire at 10:15am on the last day of every month |
|
"0 15 10 ? * 6L" |
Fire at 10:15am on the last Friday of every month |
|
"0 15 10 ? * 6L" |
Fire at 10:15am on the last Friday of every month |
|
"0 15 10 ? * 6L 2002-2005" |
Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005 |
|
"0 15 10 ? * 6#3" |
Fire at 10:15am on the third Friday of every month |
Pay attention to the effects of '?' and '*' in the day-of-week and day-of-month fields!
NOTES:
- Support for specifying both a day-of-week and a day-of-month value is not complete (you'll need to use the '?' character in on of these fields).
- Be careful when setting fire times between mid-night and 1:00 AM - "daylight savings" can cause a skip or a repeat depending on whether the time moves back or jumps forward.
- Author:
- Sharada Jambula, James House, Contributions from Mads Henderson