提醒:目前任务插件开发暂不支持热部署
需要在 cn.escheduler.server.worker.task 下的 TaskManager 中创建自定义任务
需要继承cn.escheduler.server.worker.task 下的 AbstractTask
构造方法中实例化 ShellCommandExecutor
public ShellTask(TaskProps props, Logger logger) {
super(props, logger);
this.taskDir = props.getTaskDir();
this.processTask = new ShellCommandExecutor(this::logHandle,
props.getTaskDir(), props.getTaskAppId(),
props.getTenantCode(), props.getEnvFile(), props.getTaskStartTime(),
props.getTaskTimeout(), logger);
this.processDao = DaoFactory.getDaoInstance(ProcessDao.class);
}
传入自定义任务的 TaskProps和自定义Logger,TaskProps 封装了任务的信息,Logger分装了自定义日志信息
继承 AbstractParameters 自定义任务参数实体
重写 AbstractTask 的 init 方法中解析自定义任务参数实体
重写 handle 方法,调用 ShellCommandExecutor 的 run 方法,第一个参数传入自己的command,第二个参数传入 ProcessDao,设置相应的 exitStatusCode