在实际项目应用经常遇到定时执行某一任务的需求,比如银行信用卡中心每月给客户发送对账单,每天定时抽取数据生成报等,这些就需要用到定时任务。 所以我们提供方便友好的web界面,实现动态管理任务,可以达到动态控制定时任务启动、暂停、重启、删除、添加、修改等操作,极大地方便了开发过程。
如何使用定时任务?
1、不带参数的定时任务类开发
/**
* 示例不带参定时任务
*/
public class SampleJob implements Job {
private static final Logger log = LoggerFactory.getLogger(SampleJob.class);
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info(String.format(" 普通定时任务示例 SampleJob ! 时间:" + DateUtils.nowStrTime()));
}
}
2、带参数的定时任务类开发
/**
* 示例带参定时任务
*/
public class SampleParamJob implements Job {
private static final Logger log = LoggerFactory.getLogger(SampleJob.class);
private String parameter;
public void setParameter(String parameter) {
this.parameter = parameter;
}
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info(String.format("welcome %s! 带参数定时任务示例 SampleParamJob ! 时间:" + DateUtils.nowStrTime(), this.parameter));
}
}
定时任务执行时间采用cron表达式语法,代表[秒] [分] [小时] [日] [月] [周] [年]。
比如:
0 0 2 1 * ? * 每月的1日的凌晨2点触发
0 0 10,14,16 * * ? 每天上午10点,下午2点,4点触发
0 0 12 ? * WED 表示每个星期三中午12点触发
0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 15 10 L * ? 每月最后一日的上午10:15触发