类 TaskSchedulerService
java.lang.Object
net.sohelp.boot.demo.core.task.TaskSchedulerService
定时任务调度服务
该服务负责从资源系统中加载任务配置(/sohelp-boot/dev/ops/task), 按任务状态动态启动或停止调度,并根据任务类型执行对应的 Java 类或 Nashorn 脚本。
设计要点: - 任务资源:每个任务以 JSON 文件形式存储,包含 id、name、type、cron、className、params、script、status 等字段 - 状态驱动:status=running 时开启调度,stopped/disabled 时关闭调度 - Cron 兼容:前端采用五段式(分 时 日 月 周);调度使用六段式(秒 分 时 日 月 周),此处自动补秒为 0 - 执行策略: · Java:优先执行 Runnable#run();否则查找 public void execute(Map params) 并反射调用 · Script:使用 Nashorn 引擎 eval 代码,注入 params 变量
-
构造器概要
构造器 -
方法概要
-
构造器详细资料
-
TaskSchedulerService
public TaskSchedulerService()
-
-
方法详细资料
-
init
@PostConstruct public void init()初始化调度器线程池 -
sync
@Scheduled(fixedDelay=10000L) public void sync()同步任务配置并按状态启停调度每 10 秒执行一次: - 读取所有任务配置 - 对运行中任务进行启动(若未启动) - 对非运行任务进行停止(若已启动) - 删除已不存在的任务调度
-
start
public void start(com.alibaba.fastjson.JSONObject obj) 启动任务调度- 参数:
obj- 任务配置 JSON
-
stop
停止任务调度- 参数:
id- 任务ID
-
execute
public void execute(com.alibaba.fastjson.JSONObject obj) 执行一次任务- 参数:
obj- 任务配置 JSON
-