# 任务调度-BEAN模式
# 1.场景介绍
以BEAN运行模式为例,讲解任务调度的配置与使用。
# 2.效果展示
执行器启动后,执行逻辑流,查看执行情况,如下图:
# 3.实现思路
以AFCenter应用为例,讲解如何将应用作为调度中心和执行器,配置执行器、设置调度任务,触发任务定时执行。
# 4.操作步骤
# 4.1 应用调度执行器配置
在EOS Low-Code Platform8安装路径\server\afcenter\config\application-job.properties中修改新增配置,如下:
# 调度中心配置
afc.job.admin.enabled=false
#执行器token,非空时启用 xxl-job, access token
#xxl.job.accessToken=default_token
# executor配置
### xxl-job, access token
afc.job.executor.enabled=true
afc.job.executor.accessToken=default_token
#调度中心部署地址,多个配置逗号分隔 "http://address01,http://address02"
afc.job.executor.address=http://192.168.17.32:9998/
#地址信息用于 "执行器注册" 和 "调度中心请求并触发任务"
afc.job.executor.ip=192.168.17.32
#执行器端口号:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口
afc.job.executor.port=9998
#执行器日志文件存储路径,需要对该路径拥有读写权限;为空则使用默认路径
afc.job.executor.logPath=
#执行器日志保存天数
afc.job.executor.logRetentionDays=30
# 4.2 新建执行器
创建模式分为应用、自定义两种模式, 若创建模式选择应用,下拉选择应用; 若创建模式选择自定义,输入执行器编码、执行器名称,注册方式选择自动注册,即执行器配置中地址保存,可查看在线机器地址。
# 4.3 任务管理
# 4.3.1 JobHandler示例
本示例运行模式以BEAN模式为例,故编写JobHandler示例代码
import com.xxl.job.core.handler.annotation.XxlJob;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.context.XxlJobHelper;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 定时器任务
*/
@Slf4j
@Component
public class TimedTaskJobHandler {
@Autowired(required = false)
private List<EveryDayExecute> everyDayExecutes;
/**
* 每日任务
*
* @throws Exception
*/
@XxlJob("everyDayExecuteJobHandler")
public ReturnT<String> everyDayExecuteJobHandler(String param) {
log.info("每日任务执行");
XxlJobHelper.log("XXL-JOB,每日任务执行.");
if (everyDayExecutes == null || everyDayExecutes.size() == 0) {
return ReturnT.SUCCESS;
}
for (int i = 0; i < everyDayExecutes.size(); i++) {
try {
everyDayExecutes.get(i).execute();
} catch (Exception e) {
log.error("每分钟任务异常", e);
}
}
return ReturnT.SUCCESS;
}
}
# 4.3.2 新建任务
执行器选择EOS8-DEMO-APP,任务名称逻辑流执行(自定义),调度类型为CRON,运行模式为BEAN,JobHandler选择上一步开发的“everyDayExecuteJobHandler”
启动定时任务,查询日志查看启动状态。