循环任务如 A点到B点,B点到A点,不停的循环执行,可以参照如下流程图:
循环任务关键在于最后的脚本节点,需要把之前的参数设置到新的参数,其中请求编号和任务编号需要重新赋值,对应的脚本代码如下:
import robot.glory.tas.frame.msg.gbt.api.task.dto.param.SubmitParam;
import robot.glory.framework.util.UuidUtil;
import robot.glory.tas.frame.msg.gbt.service.GbtTaskService;
import robot.glory.framework.core.context.AppContext;
SubmitParam submitParam = (SubmitParam)execution.getVariable("submitParam");
SubmitParam param = new SubmitParam();
String uuid = UuidUtil.genUuid();
param.setRobotTaskCode(uuid);
param.setHeaderParam(submitParam.getHeaderParam());
param.setTargetRoute(submitParam.getTargetRoute());
param.setTaskType(submitParam.getTaskType());
param.setInitPriority(submitParam.getInitPriority());
param.setExtra(submitParam.getExtra());
param.setRobotCode(submitParam.getRobotCode());
param.setRobotType(submitParam.getRobotType());
param.setDeadline(submitParam.getDeadline());
param.setInterrupt(submitParam.getInterrupt());
param.setGroupCode(submitParam.getGroupCode());
param.getHeaderParam().setRequestId(uuid);
GbtTaskService gbtTaskService = AppContext.getBean("gbtTaskService");
gbtTaskService.doSubmit(param);
param
下发任务参数如下:
{
"targetRoute": [
{
"type": "SITE",
"code": "0001000GG0009000"
},
{
"type": "SITE",
"code": "0001000GG0005000"
}
],
"initPriority": 10,
"extra": {
"async": "1"
},
"interrupt": 0
}
其中"async": "1",表示异步生成任务,下发任务时使用异步的方式,才能让当前流程结束