|
@@ -172,6 +172,7 @@ public class ProjectConsumer {
|
|
|
String xoscPathOfMinio = projectResultPathOfMinio + projectId + "/" + taskId + "/" + taskId + "." + xoscSuffix;
|
|
|
MinioUtil.downloadToFile(minioClient, bucketName, scenarioOsc, xoscPathOfLinux);
|
|
|
MinioUtil.uploadFromFile(minioClient, xoscPathOfLinux, bucketName, xoscPathOfMinio);
|
|
|
+ FileUtil.rm(xoscPathOfLinux); // 删除临时文件
|
|
|
|
|
|
String scenarioOdr = sceneEntity.getScenarioOdr();
|
|
|
String[] splitXodr = scenarioOdr.split("/");
|
|
@@ -182,6 +183,7 @@ public class ProjectConsumer {
|
|
|
String xodrPathOfMinio = projectResultPathOfMinio + projectId + "/" + taskId + "/" + taskId + "." + xodrSuffix;
|
|
|
MinioUtil.downloadToFile(minioClient, bucketName, scenarioOdr, xodrPathOfLinux);
|
|
|
MinioUtil.uploadFromFile(minioClient, xodrPathOfLinux, bucketName, xodrPathOfMinio);
|
|
|
+ FileUtil.rm(xodrPathOfLinux); // 删除临时文件
|
|
|
|
|
|
String scenarioOsgb = sceneEntity.getScenarioOsgb();
|
|
|
String[] splitOsgb = scenarioOsgb.split("/");
|
|
@@ -192,7 +194,7 @@ public class ProjectConsumer {
|
|
|
String osgbPathOfMinio = projectResultPathOfMinio + projectId + "/" + taskId + "/" + taskId + "." + osgbSuffix;
|
|
|
MinioUtil.downloadToFile(minioClient, bucketName, scenarioOsgb, osgbPathOfLinux);
|
|
|
MinioUtil.uploadFromFile(minioClient, osgbPathOfLinux, bucketName, osgbPathOfMinio);
|
|
|
- log.info("已经将 xosc、xodr、osgb 上传到 minio 的结果文件目录:" + projectResultPathOfMinio);
|
|
|
+ FileUtil.rm(osgbPathOfLinux); // 删除临时文件
|
|
|
|
|
|
// 组装 task 消息
|
|
|
TaskMessageEntity taskMessageEntity = TaskMessageEntity.builder().info(InfoEntity.builder().project_id(taskEntity.getPId()).task_id(taskEntity.getId()).task_path(taskEntity.getRunResultFilePath()).default_time(videoTime).build()).scenario(ScenarioEntity.builder().scenario_osc(xoscPathOfMinio).scenario_odr(xodrPathOfMinio).scenario_osgb(osgbPathOfMinio).build()).vehicle(VehicleModel.builder().model(ModelEntity.builder().model_label(vehicleEntity.getModelLabel()).build()).dynamics(DynamicsModel.builder().dynamics_maxspeed(vehicleEntity.getMaxSpeed()).dynamics_enginepower(vehicleEntity.getEnginePower()).dynamics_maxdecel(vehicleEntity.getMaxDeceleration()).dynamics_maxsteering(vehicleEntity.getMaxSteeringAngle()).dynamics_mass(vehicleEntity.getMass()).dynamics_frontsurfaceeffective(vehicleEntity.getFrontSurfaceEffective()).dynamics_airdragcoefficient(vehicleEntity.getAirDragCoefficient()).dynamics_rollingresistance(vehicleEntity.getRollingResistanceCoefficient()).dynamics_wheeldiameter(vehicleEntity.getWheelDiameter()).dynamics_wheeldrive(vehicleEntity.getWheelDrive()).dynamics_overallefficiency(vehicleEntity.getOverallEfficiency()).dynamics_distfront(vehicleEntity.getFrontDistance()).dynamics_distrear(vehicleEntity.getRearDistance()).dynamics_distleft(vehicleEntity.getLeftDistance()).dynamics_distright(vehicleEntity.getRightDistance()).dynamics_distheight(vehicleEntity.getHeightDistance()).dynamics_wheelbase(vehicleEntity.getWheelbase()).build()).sensors(SensorsEntity.builder() // 根据 vehicleId 查询绑定的传感器列表
|
|
@@ -340,12 +342,12 @@ public class ProjectConsumer {
|
|
|
throw new RuntimeException("未知角色类型:" + roleCode);
|
|
|
}
|
|
|
PrefixEntity redisPrefix = projectUtil.getRedisPrefixByClusterIdAndProjectId(clusterEntity.getId(), projectId);
|
|
|
- projectUtil.checkLicense(userId,clusterEntity.getNumSimulationLicense(),clusterEntity.getNumDynamicLicense());
|
|
|
if (DictConstants.MODEL_TYPE_VTD.equals(modelType)) {
|
|
|
// 获取仿真软件证书数量和动力学软件证书数量(vtd占一个仿真证书,carsim各占一个)
|
|
|
// // 获取正在运行的项目的并行度总和
|
|
|
// int currentParallelismSum = projectUtil.getCurrentParallelismSum(redisPrefix.getClusterRunningPrefix());
|
|
|
// 如果执行后的并行度总和小于最大节点数则执行,否则不执行
|
|
|
+ final Integer usingLicenseNumber = projectUtil.getUsingLicenseNumber(userId, DictConstants.MODEL_TYPE_VTD);
|
|
|
if (projectUtil.getUsingLicenseNumber(userId, DictConstants.MODEL_TYPE_VTD) + parallelism <= clusterEntity.getNumSimulationLicense()) {
|
|
|
run(projectMessageDTO, userId, modelType, clusterEntity.getId(), redisPrefix.getProjectRunningKey(), redisPrefix.getProjectWaitingKey());
|
|
|
} else {
|