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); }