定时任务Demo

本小结介绍一个AbleCloud云端定时任务示例。

一个完整的云端定时任务由两部分组成:

  1. 定时规则:定义任务的执行时间。

    AbleCloud支持Crontab格式的时间定义(详见:Crontab定时规则)。

  2. 定时任务可执行程序

其中,定时规则是由开发者在AbleCloud控制台中创建定时任务时设置。本小结介绍的示例是开发定时任务的可执行程序。

场景介绍

本示例的可执行程序完成的任务仅是打印一条日志:任务执行的实际时间。

在AbleCloud控制台中创建该定时任务时,设置的定时规则是“*/2 * * * *”,表示每隔2分钟执行一次本任务。

实现思路

  1. 按要求从ACCronJob派生子类型,在派生类中实现父类定义的抽象方法ACCronJob::run;
  2. 通过AbleCloud控制台创建定时任务,设置任务的定时规则;
  3. 通过AbleCloud控制台上传任务的可执行程序,创建定时任务的版本,然后“上线”该版本以启动该定时任务。

可执行程序的具体实现

下文示例中,DemoCronJob是ACCronJob的派生类型,并且实现了父类定义的抽象方法ACCronJob::run。

package  com.ablecloud.demo;

import com.ablecloud.service.ACCronJob;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DemoCronJob extends ACCronJob {
    // 日志工具
    private static final Logger logger = LoggerFactory.getLogger(DemoCronJob.class);

    @Override
    public int run() throws Exception {
        // 在日志中记录任务的执行时间
        logger.info("任务执行时间:" + new java.util.Date().toString() + "。");
        return 0;   // 返回状态码0,表示任务执行成功。
    }
}