|
@@ -487,7 +487,6 @@ public class ProjectUtil {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
public PrefixEntity getRedisPrefixByProjectIdAndProjectType(String projectId, String projectType) {
|
|
|
String userId;
|
|
|
if (DictConstants.PROJECT_TYPE_MANUAL.equals(projectType)) {
|
|
@@ -618,14 +617,14 @@ public class ProjectUtil {
|
|
|
}
|
|
|
|
|
|
|
|
|
- public Integer getUsingLicenseNumber(String userId, String modelType) {
|
|
|
+ public Integer getUsingLicenseNumber(String userId, String licenseType) {
|
|
|
String key;
|
|
|
- if (DictConstants.MODEL_TYPE_VTD.equals(modelType)) {
|
|
|
- key = "user:" + userId + ":using-license:vtd";
|
|
|
- } else if (DictConstants.MODEL_TYPE_CARSIM.equals(modelType)) {
|
|
|
- key = "user:" + userId + ":using-license:carsim";
|
|
|
+ if (DictConstants.LICENSE_TYPE_SIMULATION.equals(licenseType)) {
|
|
|
+ key = "user:" + userId + ":using-license:simulation";
|
|
|
+ } else if (DictConstants.LICENSE_TYPE_DYNAMIC.equals(licenseType)) {
|
|
|
+ key = "user:" + userId + ":using-license:dynamic";
|
|
|
} else {
|
|
|
- throw new RuntimeException("未知模型类型:" + modelType);
|
|
|
+ throw new RuntimeException("未知证书类型:" + licenseType);
|
|
|
}
|
|
|
final String usingLicense = customRedisClient.get(key);
|
|
|
if (StringUtil.isEmpty(usingLicense)) {
|
|
@@ -636,20 +635,23 @@ public class ProjectUtil {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void useLicense(String userId, String modelType, int parallelism) {
|
|
|
- String key;
|
|
|
+ public void useLicense(String clusterUserId, String modelType, int parallelism) {
|
|
|
if (DictConstants.MODEL_TYPE_VTD.equals(modelType)) {
|
|
|
- key = "user:" + userId + ":using-license:vtd";
|
|
|
+ useLicense("user:" + clusterUserId + ":using-license:simulation", parallelism);
|
|
|
} else if (DictConstants.MODEL_TYPE_CARSIM.equals(modelType)) {
|
|
|
- key = "user:" + userId + ":using-license:carsim";
|
|
|
+ useLicense("user:" + clusterUserId + ":using-license:simulation", parallelism);
|
|
|
+ useLicense("user:" + clusterUserId + ":using-license:dynamic", parallelism);
|
|
|
} else {
|
|
|
throw new RuntimeException("未知模型类型:" + modelType);
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ private void useLicense(String key, int number) {
|
|
|
final String usingLicense = customRedisClient.get(key);
|
|
|
if (StringUtil.isEmpty(usingLicense)) {
|
|
|
- customRedisClient.set(key, String.valueOf(parallelism));
|
|
|
+ customRedisClient.set(key, String.valueOf(number));
|
|
|
} else {
|
|
|
- customRedisClient.increment(key, parallelism);
|
|
|
+ customRedisClient.increment(key, number);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -657,33 +659,24 @@ public class ProjectUtil {
|
|
|
public void releaseLicense(String projectUserId, String modelType, int parallelism) {
|
|
|
final String clusterUserId = getClusterUserIdByProjectUserId(projectUserId);
|
|
|
if (DictConstants.MODEL_TYPE_VTD.equals(modelType)) {
|
|
|
- String key = "user:" + clusterUserId + ":using-license:vtd";
|
|
|
- final String usingLicense = customRedisClient.get(key);
|
|
|
- if (StringUtil.isEmpty(usingLicense)) {
|
|
|
- customRedisClient.set(key, "0");
|
|
|
- } else {
|
|
|
- customRedisClient.decrement(key, parallelism);
|
|
|
- }
|
|
|
+ releaseLicense("user:" + clusterUserId + ":using-license:simulation",parallelism);
|
|
|
} else if (DictConstants.MODEL_TYPE_CARSIM.equals(modelType)) {
|
|
|
- String key1 = "user:" + clusterUserId + ":using-license:vtd";
|
|
|
- final String usingLicense1 = customRedisClient.get(key1);
|
|
|
- if (StringUtil.isEmpty(usingLicense1)) {
|
|
|
- customRedisClient.set(key1, "0");
|
|
|
- } else {
|
|
|
- customRedisClient.decrement(key1, parallelism);
|
|
|
- }
|
|
|
- String key2 = "user:" + clusterUserId + ":using-license:carsim";
|
|
|
- final String usingLicense2 = customRedisClient.get(key2);
|
|
|
- if (StringUtil.isEmpty(usingLicense2)) {
|
|
|
- customRedisClient.set(key2, "0");
|
|
|
- } else {
|
|
|
- customRedisClient.decrement(key2, parallelism);
|
|
|
- }
|
|
|
+ releaseLicense("user:" + clusterUserId + ":using-license:simulation",parallelism);
|
|
|
+ releaseLicense("user:" + clusterUserId + ":using-license:dynamic",parallelism);
|
|
|
} else {
|
|
|
throw new RuntimeException("未知模型类型:" + modelType);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void releaseLicense(String key, int number){
|
|
|
+ final String usingLicense = customRedisClient.get(key);
|
|
|
+ if (StringUtil.isEmpty(usingLicense)) {
|
|
|
+ customRedisClient.set(key, "0");
|
|
|
+ } else {
|
|
|
+ customRedisClient.decrement(key, number);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public String getClusterUserIdByProjectUserId(String projectUserId) {
|
|
|
String clusterUserId;
|
|
|
final UserEntity userEntity = userMapper.selectById(projectUserId);
|