|
@@ -222,27 +222,29 @@ public class ManualProjectConsumer {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
- String algorithmId = projectMessageDTO.getAlgorithmId();
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
|
|
|
int completions = sceneList.size();
|
|
|
int parallelism = projectMessageDTO.getParallelism();
|
|
@@ -263,218 +265,12 @@ public class ManualProjectConsumer {
|
|
|
stringBuilder.replace(j + "parallelism: ".length(), j + "parallelism: ".length() + 1, parallelism + "");
|
|
|
String yamlTarget0 = stringBuilder.toString();
|
|
|
String yamlTarget1 = yamlTarget0.replace("apiVers1on", "apiVersion");
|
|
|
+ String yamlTarget2 = yamlTarget1.replace("1atch/v1", "batch/v1");
|
|
|
log.info("------- ManualProjectConsumer 开始执行 yaml 文件" + yamlTarget1);
|
|
|
- FileUtil.writeStringToLocalFile(yamlTarget1, jobTemplateYamlPathTarget);
|
|
|
+ FileUtil.writeStringToLocalFile(yamlTarget2, jobTemplateYamlPathTarget);
|
|
|
LinuxUtil.execute("kubectl apply -f " + jobTemplateYamlPathTarget);
|
|
|
}
|
|
|
|
|
|
|
|
|
- @SneakyThrows
|
|
|
-
|
|
|
- public void parseProjectService(String projectJson) {
|
|
|
- log.info("------- parseProject 接收到消息为:" + projectJson);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- {
|
|
|
- "projectId": "sadfasdfs",
|
|
|
- "algorithmId": "sadfasdfs",
|
|
|
- "vehicleConfigId": "sadfasdfs",
|
|
|
- "scenePackageId": "sadfasdfs",
|
|
|
- "maxSimulationTime": 11111,
|
|
|
- "parallelism": 30
|
|
|
- }
|
|
|
- */
|
|
|
-
|
|
|
- ProjectMessageDTO projectMessageDTO = JsonUtil.jsonToBean(projectJson, ProjectMessageDTO.class);
|
|
|
- String projectId = projectMessageDTO.getProjectId();
|
|
|
- projectMapper.updateProjectState(projectId, DictConstants.PROJECT_RUNNING);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- String packageId = projectMessageDTO.getScenePackageId();
|
|
|
- List<IndexTemplatePO> leafIndexList = indexTemplateMapper.selectLeafIndexByPackageId(packageId);
|
|
|
- List<String> naturalIdList = new ArrayList<>();
|
|
|
- List<String> standardIdList = new ArrayList<>();
|
|
|
- List<String> accidentIdList = new ArrayList<>();
|
|
|
- for (IndexTemplatePO indexTemplatePO : leafIndexList) {
|
|
|
- String naturalIds = indexTemplatePO.getSceneNaturalIds();
|
|
|
- String standardIds = indexTemplatePO.getSceneStatueIds();
|
|
|
- String accidentIds = indexTemplatePO.getSceneTrafficIds();
|
|
|
- if (StringUtil.isNotEmpty(naturalIds)) {
|
|
|
- String[] naturalIdArray = naturalIds.split(",");
|
|
|
- naturalIdList.addAll(Arrays.asList(naturalIdArray));
|
|
|
- }
|
|
|
- if (StringUtil.isNotEmpty(standardIds)) {
|
|
|
- String[] standardArray = standardIds.split(",");
|
|
|
- standardIdList.addAll(Arrays.asList(standardArray));
|
|
|
- }
|
|
|
- if (StringUtil.isNotEmpty(accidentIds)) {
|
|
|
- String[] accidentIdArray = accidentIds.split(",");
|
|
|
- accidentIdList.addAll(Arrays.asList(accidentIdArray));
|
|
|
- }
|
|
|
- }
|
|
|
- List<ScenePO> sceneList = new ArrayList<>();
|
|
|
- if (CollectionUtil.isNotEmpty(naturalIdList)) {
|
|
|
- sceneList.addAll(sceneMapper.selectNaturalByIdList(naturalIdList));
|
|
|
- }
|
|
|
- if (CollectionUtil.isNotEmpty(standardIdList)) {
|
|
|
- sceneList.addAll(sceneMapper.selectStandardByIdList(standardIdList));
|
|
|
- }
|
|
|
- if (CollectionUtil.isNotEmpty(accidentIdList)) {
|
|
|
- sceneList.addAll(sceneMapper.selectAccidentByIdList(accidentIdList));
|
|
|
- }
|
|
|
- projectMapper.updateTaskNumber(projectId, sceneList.size());
|
|
|
-
|
|
|
-
|
|
|
- String vehicleConfigId = projectMessageDTO.getVehicleConfigId();
|
|
|
- VehiclePO vehiclePO = vehicleMapper.selectByVehicleConfigId(vehicleConfigId);
|
|
|
- List<CameraPO> cameraPOList = sensorCameraMapper.selectCameraByVehicleConfigId(vehicleConfigId);
|
|
|
- List<OgtPO> ogtPOList = sensorOgtMapper.selectOgtByVehicleId(vehicleConfigId);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- int maxSimulationTime = projectMessageDTO.getMaxSimulationTime();
|
|
|
-
|
|
|
- for (ScenePO scenePO : sceneList) {
|
|
|
- String taskId = StringUtil.getRandomUUID();
|
|
|
- String resultPath = linuxTempPath + projectId + "/" + taskId;
|
|
|
-
|
|
|
- TaskPO taskPO = TaskPO.builder()
|
|
|
- .id(taskId)
|
|
|
- .pId(projectId)
|
|
|
- .sceneId(scenePO.getId())
|
|
|
- .sceneName(scenePO.getName())
|
|
|
- .sceneType(scenePO.getType())
|
|
|
- .runState(DictConstants.TASK_PENDING)
|
|
|
- .runResult(resultPath)
|
|
|
- .build();
|
|
|
- taskPO.setCreateTime(TimeUtil.getNowForMysql());
|
|
|
- taskPO.setCreateUserId(USER_ID);
|
|
|
- taskPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
- taskPO.setModifyUserId(USER_ID);
|
|
|
- taskPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
- taskPO.setIsDeleted("0");
|
|
|
- taskMapper.insert(taskPO);
|
|
|
-
|
|
|
- redisTemplate.opsForValue().set(manualProjectTopic + ":" + projectId + ":" + taskId, TimeUtil.getNowString());
|
|
|
-
|
|
|
- TaskTO taskTO = TaskTO.builder()
|
|
|
- .info(InfoTO.builder()
|
|
|
- .project_id(projectId)
|
|
|
- .task_id(taskId)
|
|
|
- .task_path(resultPath)
|
|
|
- .default_time(maxSimulationTime)
|
|
|
- .build())
|
|
|
- .scenario(ScenarioTO.builder()
|
|
|
- .scenario_osc(scenePO.getScenarioOsc())
|
|
|
- .scenario_odr(scenePO.getScenarioOdr())
|
|
|
- .scenario_osgb(scenePO.getScenarioOsgb())
|
|
|
- .build())
|
|
|
- .vehicle(VehicleTO.builder()
|
|
|
- .model(ModelTO.builder()
|
|
|
- .model_label(vehiclePO.getModelLabel())
|
|
|
- .build())
|
|
|
- .dynamics(DynamicsTO.builder()
|
|
|
- .dynamics_maxspeed(vehiclePO.getMaxSpeed())
|
|
|
- .dynamics_enginepower(vehiclePO.getEnginePower())
|
|
|
- .dynamics_maxdecel(vehiclePO.getMaxDeceleration())
|
|
|
- .dynamics_maxsteering(vehiclePO.getMaxSteeringAngle())
|
|
|
- .dynamics_mass(vehiclePO.getMass())
|
|
|
- .dynamics_frontsurfaceeffective(vehiclePO.getFrontSurfaceEffective())
|
|
|
- .dynamics_airdragcoefficient(vehiclePO.getAirDragCoefficient())
|
|
|
- .dynamics_rollingresistance(vehiclePO.getRollingResistanceCoefficient())
|
|
|
- .dynamics_wheeldiameter(vehiclePO.getWheelDiameter())
|
|
|
- .dynamics_wheeldrive(vehiclePO.getWheelDrive())
|
|
|
- .dynamics_overallefficiency(vehiclePO.getOverallEfficiency())
|
|
|
- .dynamics_distfront(vehiclePO.getFrontDistance())
|
|
|
- .dynamics_distrear(vehiclePO.getRearDistance())
|
|
|
- .dynamics_distleft(vehiclePO.getLeftDistance())
|
|
|
- .dynamics_distright(vehiclePO.getRightDistance())
|
|
|
- .dynamics_distheight(vehiclePO.getHeightDistance())
|
|
|
- .dynamics_wheelbase(vehiclePO.getWheelbase())
|
|
|
- .build())
|
|
|
- .sensors(SensorsTO.builder()
|
|
|
- .camera(cameraPOList)
|
|
|
- .OGT(ogtPOList)
|
|
|
- .build())
|
|
|
- .build())
|
|
|
- .build();
|
|
|
-
|
|
|
- String taskJson = JsonUtil.beanToJson(taskTO);
|
|
|
-
|
|
|
- kafkaTemplate.send(projectId, taskJson).addCallback(success -> {
|
|
|
-
|
|
|
-
|
|
|
- String topic = success.getRecordMetadata().topic();
|
|
|
-
|
|
|
- int partition = success.getRecordMetadata().partition();
|
|
|
-
|
|
|
- long offset = success.getRecordMetadata().offset();
|
|
|
- log.info("------- 发送消息成功:\n"
|
|
|
- + "主题 topic 为:" + topic + "\n"
|
|
|
- + "分区 partition 为:" + partition + "\n"
|
|
|
- + "偏移量为:" + offset + "\n"
|
|
|
- + "消息体为:" + taskJson);
|
|
|
- }, failure -> {
|
|
|
- log.error("------- 发送消息失败:" + failure.getMessage());
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
}
|