背景

公司有自己的任务调度系统,但是当前模块又设计自己的调度,他的级别是按天或者小时级别的,且任务非常多,如果注册到公司的调度系统上来看的话,不好管理,且没有业务语义,不方便问题排查。

实现方案

简述实现方案是:通过公司调度系统进行调度服务,服务自身建立子调度逻辑。
假设任务是小时级别调度,那么云每小时调度一次:

var gapHour=1;
var localDateTime=LocalDateTime.now();
var maxDateTime=localDateTime.plusHour(gapHour);
var taskList = select * from task where trigger_next_time <= maxDateTime

for(task:taskList){
    doTask(task);
    updateTaskNextTime(task);
}

表结构设计