package com.yanzuoguang.redis;
/**
* 每秒定时任务
* <p>
* 1. 当任务实现 <PlanName> 接口时,将会采用该接口所配置的名称,否则采用任务类全路径,
* 2. 当任务实现 <PlanGlobal> 接口时,将会采用该接口所配置的运行级别,否则采用application级别
* - application 级别:采用 bootstrap.yml 文件中 spring.application.name 作为运行隔离级别,不同的application互相之间没有影响
* - global 级别: 不同的application互相之间只有唯一一个,并且只有最后一个启动的程序可以运行
* 3. 当任务实现 <PlanStart> 接口时,将会采用该接口来确定打开程序是否运行,默认为true
*
* @author 颜佐光
*/
public interface Plan {
/**
* 执行的任务函数
*/
void plan();
/**
* 下次执行时间,从上次开始时间计算,即 plan.time 开始计算.
* plan.time + @return < 当前毫秒则开始运行
*
* @param plan 任务信息
* @param isConsumer 是否运行任务(消费者)
* @return 是否执行
*/
long getNextSecond(PlanInfo<?> plan, boolean isConsumer);
}
-
yanzg authoredb948ecc5