首页 > 代码库 > JAVA触发器的测试
JAVA触发器的测试
/***************************************Spring配置代码***************************************/
<!-- 触发器生成器类,用被指定的调度器调度生成指定规则的触发器对象 -->
<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<!-- 触发后要做的操作,这个操作由spring管理,只需要指定一个MethodInvokingJobDetailFactoryBean -->
<property name="jobDetail" ref="testJobDetail" />
<!-- 触发规则,这里的触发规则是每隔2秒钟后触发一次 -->
<property name="cronExpression" value="http://www.mamicode.com/*/2 * * * * ?" /><!-- -->
</bean>
<!--任务生成器,由spring管理,只需要指定其对应的对象和方法即可,任务的执行即是某个对象调用一个方法 -->
<bean id="testJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 指定该任务对应的调用对象,这个对象所属的类无需实现任何接口-->
<property name="targetObject" ref="testJob" />
<!-- 指定在targetObject对象中某个的方法 -->
<property name="targetMethod" value="http://www.mamicode.com/execute" />
<!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->
<property name="concurrent" value="http://www.mamicode.com/false" />
</bean>
<!-- 一个普通的类,用于测试 -->
<bean id="testJob" class="com.wisdom.test.SMSTest.TestJob"/>
/****************************************实体类对应的代码***************************************/
package com.wisdom.test.SMSTest;
import java.util.Date;
public class TestJob {
private static int count = 0;
public void execute() {
try {
Thread.sleep(3000);
System.out.println(new Date() + "--任务I第"+ ++count +"次被触发");
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
/*******************************时间规则*************************************************/
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
在26分、29分、33分执行一次:0 26,29,33 * * * ?
每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
JAVA触发器的测试