目前本人只用到了三种,所以记录之
1.用的最多的,实现Job类并在spring中配置定时器
JobDetail:
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class JobDetailTest implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
// 添加需要处理的服务
}
}
配置文件:
<bean id="JobDetailTest" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="JobDetailTest" />
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<value>0/30 * * * * ?</value>
</property>
</bean>
2.用注解的方式,用法更简单:
任务类,完全自定义,除了没有入参
@Component
public class JobTest {
@Scheduled(fixedDelay = 1)
public void work() {
for (int i = 1; i < 20; i++) {
System.out.println("start-------------------------------------");
}
}
}
需要在spring中增加一段配置:
<!-- 定时器开关 开始-->
<task:annotation-driven/>
<!-- 定时器开关 结束-->
并且保证该类能被spring扫描到
出发方式有三种fixedDelay,fixedRate,cron。而cron就支持各种出发方式了,如每个小时执行一次:
@Scheduled(cron = "0 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,0 * * ?")
3.第三种方式就复杂了需要自定义job,jobgroup。暂不记录