第一种:为普通java类中的某个方法配置跑批任务
1.定义要跑批的类和方法:
package com.xy.utils.quartz;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 测试定时器类
* @author javaw
*
*/
public class TestQuartz {
public static Logger logger = LoggerFactory.getLogger(TestQuartz.class);
public void TestMethod(){
logger.info("Auto Execute TestMethod start! Date={}" ,new DateTime().toString("YYYY-MM-DD HH:mm:ss" ));
logger.info("**********测试跑批类************");
logger.info("Auto Execute TestMethod end! Date={}" ,new DateTime().toString("YYYY-MM-DD HH:mm:ss" ));
}
}
2.配置Spring定时器让quartz自动执行testMethod方法:
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
3.写测试方法进行调用(不用启动tomcat):
public static void main(String[] args) {
SchedulerFactoryBean schedulerFactoryBean = (SchedulerFactoryBean) SpringUtilsFromClassPathXml.getBean( "testSchedulerFactoryBean");
//启动调度器
schedulerFactoryBean.start();
}
第二种:为继承QuartzJobBean的java类配置跑批任务
1.写java类继承QuartzJobBean,重写executeInternal 方法:
package com.xy.utils.quartz;
import org.joda.time.DateTime;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
/**
* 测试继承QuartzJobBean的java类配置定时器
* @author javaw
*
*/
public class TestQuartzExtendsJobBean extends QuartzJobBean{
private static Logger logger = LoggerFactory.getLogger(TestQuartzExtendsJobBean. class);
@Override
protected void executeInternal(JobExecutionContext context)
throws JobExecutionException {
logger.info("Auto Execute TestQuartzExtendsJobBean start! Date={}",new DateTime().toString( "YYYY-MM-DD HH:mm:ss"));
logger.info("**********"+content.getMergedJobDataMap().get("descString")+"************");
logger.info("Auto Execute TestQuartzExtendsJobBean end! Date={}",new DateTime().toString( "YYYY-MM-DD HH:mm:ss"));
}
}
2.配置文件:
class="org.springframework.scheduling.quartz.JobDetailBean">
value="com.xy.utils.quartz.TestQuartzExtendsJobBean"/>
class="org.springframework.scheduling.quartz.CronTriggerBean">
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">