类 TaskSchedulerService

java.lang.Object
net.sohelp.boot.demo.core.task.TaskSchedulerService

@Service public class TaskSchedulerService extends Object
定时任务调度服务

该服务负责从资源系统中加载任务配置(/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

      public void stop(String id)
      停止任务调度
      参数:
      id - 任务ID
    • execute

      public void execute(com.alibaba.fastjson.JSONObject obj)
      执行一次任务
      参数:
      obj - 任务配置 JSON