|
@@ -93,7 +93,7 @@ public class TaskUtil {
|
|
* 加事务的话高并发情况下会死锁
|
|
* 加事务的话高并发情况下会死锁
|
|
*/
|
|
*/
|
|
@SneakyThrows
|
|
@SneakyThrows
|
|
- public void isProjectCompleted(PrefixEntity redisPrefix, String userId, String projectId, String projectType, String maxSimulationTime, String taskId, String state, String podName) {
|
|
|
|
|
|
+ public void isProjectCompleted(PrefixEntity redisPrefix, String projectUserId, String projectId, String projectType, String maxSimulationTime, String taskId, String state, String podName) {
|
|
boolean isCompleted;
|
|
boolean isCompleted;
|
|
String nodeName = projectUtil.getNodeNameOfPod(projectId, podName);
|
|
String nodeName = projectUtil.getNodeNameOfPod(projectId, podName);
|
|
final String isChoiceGpu = projectUtil.getIsChoiceGpuByProjectId(projectId);
|
|
final String isChoiceGpu = projectUtil.getIsChoiceGpuByProjectId(projectId);
|
|
@@ -158,10 +158,10 @@ public class TaskUtil {
|
|
//如果项目已完成先把 pod 删除,并归还并行度
|
|
//如果项目已完成先把 pod 删除,并归还并行度
|
|
KubernetesUtil.deletePod2(apiClient, kubernetesConfiguration.getNamespace(), podName);
|
|
KubernetesUtil.deletePod2(apiClient, kubernetesConfiguration.getNamespace(), podName);
|
|
projectUtil.incrementOneParallelism(isChoiceGpu, nodeName);
|
|
projectUtil.incrementOneParallelism(isChoiceGpu, nodeName);
|
|
- projectUtil.releaseLicense(userId, projectUtil.getModelTypeByProjectIdAndProjectType(projectId, projectType), 1);
|
|
|
|
|
|
+ projectUtil.releaseLicense(projectUtil.getClusterUserIdByProjectUserId(projectUserId), projectUtil.getModelTypeByProjectIdAndProjectType(projectId, projectType), 1);
|
|
} else {
|
|
} else {
|
|
log.info("项目 " + projectId + " 还未运行完成。");
|
|
log.info("项目 " + projectId + " 还未运行完成。");
|
|
- projectUtil.createNextPod(userId, projectId, projectType, nodeName, podName);
|
|
|
|
|
|
+ projectUtil.createNextPod(projectUserId, projectId, projectType, nodeName, podName);
|
|
}
|
|
}
|
|
RedisUtil.deleteByPrefix(stringRedisTemplate, redisPrefix.getTaskMessageKey());
|
|
RedisUtil.deleteByPrefix(stringRedisTemplate, redisPrefix.getTaskMessageKey());
|
|
RedisUtil.deleteByPrefix(stringRedisTemplate, redisPrefix.getTaskPodKey());
|
|
RedisUtil.deleteByPrefix(stringRedisTemplate, redisPrefix.getTaskPodKey());
|
|
@@ -172,7 +172,7 @@ public class TaskUtil {
|
|
if (isCompleted) {
|
|
if (isCompleted) {
|
|
customRedisClient.tryLock(lock2, 10 * 60L);
|
|
customRedisClient.tryLock(lock2, 10 * 60L);
|
|
log.info("项目 {} 开始打分。", projectId);
|
|
log.info("项目 {} 开始打分。", projectId);
|
|
- score(redisPrefix.getProjectRunningKey(), userId, projectId, projectType);
|
|
|
|
|
|
+ score(redisPrefix.getProjectRunningKey(), projectUserId, projectId, projectType);
|
|
log.info("项目 {} 计算评价等级。", projectId);
|
|
log.info("项目 {} 计算评价等级。", projectId);
|
|
evaluationLevel(projectId);
|
|
evaluationLevel(projectId);
|
|
log.info("项目 {} 开始释放资源。", projectId);
|
|
log.info("项目 {} 开始释放资源。", projectId);
|
|
@@ -186,10 +186,10 @@ public class TaskUtil {
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
- * @param userId 项目创建用户的 id
|
|
|
|
|
|
+ * @param projectUserId 项目创建用户的 id
|
|
*/
|
|
*/
|
|
@SneakyThrows
|
|
@SneakyThrows
|
|
- public void score(String projectRunningKey, String userId, String projectId, String projectType) {
|
|
|
|
|
|
+ public void score(String projectRunningKey, String projectUserId, String projectId, String projectType) {
|
|
stringRedisTemplate.delete(projectRunningKey);
|
|
stringRedisTemplate.delete(projectRunningKey);
|
|
// -------------------------------- 打分 --------------------------------
|
|
// -------------------------------- 打分 --------------------------------
|
|
ProjectEntity projectEntity = null;
|
|
ProjectEntity projectEntity = null;
|
|
@@ -292,7 +292,7 @@ public class TaskUtil {
|
|
taskOfLeaf.setReturnSceneId(score.getUnit_scene_ID());
|
|
taskOfLeaf.setReturnSceneId(score.getUnit_scene_ID());
|
|
taskOfLeaf.setTargetEvaluate(score.getEvaluate_item());
|
|
taskOfLeaf.setTargetEvaluate(score.getEvaluate_item());
|
|
taskOfLeaf.setScoreExplain(score.getScore_description());
|
|
taskOfLeaf.setScoreExplain(score.getScore_description());
|
|
- taskOfLeaf.setModifyUserId(userId);
|
|
|
|
|
|
+ taskOfLeaf.setModifyUserId(projectUserId);
|
|
taskOfLeaf.setModifyTime(TimeUtil.getNowForMysql());
|
|
taskOfLeaf.setModifyTime(TimeUtil.getNowForMysql());
|
|
scoreExplain = score.getScore_description();
|
|
scoreExplain = score.getScore_description();
|
|
taskOfLeaf.setRunState(DictConstants.TASK_COMPLETED);
|
|
taskOfLeaf.setRunState(DictConstants.TASK_COMPLETED);
|
|
@@ -350,9 +350,9 @@ public class TaskUtil {
|
|
leafIndexTemplate.setTempScore(leafIndexScore);
|
|
leafIndexTemplate.setTempScore(leafIndexScore);
|
|
|
|
|
|
LeafIndexEntity leafIndex = LeafIndexEntity.builder().id(StringUtil.getRandomUUID()).pId(projectId).target(leafIndexTemplate.getIndexId()).errorSceneNum(errorSceneNumber).notScoredSceneNum(notScoredSceneNumber).notStandardSceneNum(notStandardSceneNumber).standardSceneNum(standardSceneNumber).score(leafIndexScore).indexId(indexId).parentId(parentId).rootId(rootId).weight(weight).scoreExplain(scoreExplain).packageLevel(packageLevel).build();
|
|
LeafIndexEntity leafIndex = LeafIndexEntity.builder().id(StringUtil.getRandomUUID()).pId(projectId).target(leafIndexTemplate.getIndexId()).errorSceneNum(errorSceneNumber).notScoredSceneNum(notScoredSceneNumber).notStandardSceneNum(notStandardSceneNumber).standardSceneNum(standardSceneNumber).score(leafIndexScore).indexId(indexId).parentId(parentId).rootId(rootId).weight(weight).scoreExplain(scoreExplain).packageLevel(packageLevel).build();
|
|
- leafIndex.setCreateUserId(userId);
|
|
|
|
|
|
+ leafIndex.setCreateUserId(projectUserId);
|
|
leafIndex.setCreateTime(TimeUtil.getNowForMysql());
|
|
leafIndex.setCreateTime(TimeUtil.getNowForMysql());
|
|
- leafIndex.setModifyUserId(userId);
|
|
|
|
|
|
+ leafIndex.setModifyUserId(projectUserId);
|
|
leafIndex.setModifyTime(TimeUtil.getNowForMysql());
|
|
leafIndex.setModifyTime(TimeUtil.getNowForMysql());
|
|
leafIndex.setIsDeleted("0");
|
|
leafIndex.setIsDeleted("0");
|
|
|
|
|
|
@@ -434,9 +434,9 @@ public class TaskUtil {
|
|
log.info("收到任务 " + taskId + " 的心跳。");
|
|
log.info("收到任务 " + taskId + " 的心跳。");
|
|
TaskEntity taskEntity = taskMapper.selectById(taskId);
|
|
TaskEntity taskEntity = taskMapper.selectById(taskId);
|
|
String projectId = taskEntity.getPId();
|
|
String projectId = taskEntity.getPId();
|
|
- String userId = taskEntity.getCreateUserId();
|
|
|
|
|
|
+ String projectUserId = taskEntity.getCreateUserId();
|
|
// 刷新 redis 心跳时间
|
|
// 刷新 redis 心跳时间
|
|
- PrefixEntity redisPrefix = projectUtil.getRedisPrefixByUserIdAndProjectIdAndTaskId(userId, projectId, taskId);
|
|
|
|
|
|
+ PrefixEntity redisPrefix = projectUtil.getRedisPrefixByUserIdAndProjectIdAndTaskId(projectUserId, projectId, taskId);
|
|
if (RedisUtil.getStringByKey(stringRedisTemplate, redisPrefix.getProjectRunningKey()) != null) {
|
|
if (RedisUtil.getStringByKey(stringRedisTemplate, redisPrefix.getProjectRunningKey()) != null) {
|
|
stringRedisTemplate.opsForValue().set(redisPrefix.getTaskTickKey(), TimeUtil.getNowString());
|
|
stringRedisTemplate.opsForValue().set(redisPrefix.getTaskTickKey(), TimeUtil.getNowString());
|
|
}
|
|
}
|