定时任务
百度已收录

       在实际项目应用经常遇到定时执行某一任务的需求,比如银行信用卡中心每月给客户发送对账单,每天定时抽取数据生成报等,这些就需要用到定时任务。 所以我们提供方便友好的web界面,实现动态管理任务,可以达到动态控制定时任务启动、暂停、重启、删除、添加、修改等操作,极大地方便了开发过程。

      如何使用定时任务?

第一步、自定义Job,实现org.quartz.Job接口

 

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触发

 

第三步:在线管理任务启停