refactor: optimize SwitchableStatus's package

This commit is contained in:
tjq 2024-08-11 22:25:49 +08:00
parent 5c49b8d8dd
commit 44ef76328b
30 changed files with 237 additions and 33 deletions

View File

@ -128,7 +128,8 @@ public class ClusterRequestServiceOkHttp3Impl extends AppAuthClusterRequestServi
// 设置写的超时时间
.writeTimeout(Optional.ofNullable(config.getReadTimeout()).orElse(DEFAULT_TIMEOUT_SECONDS), TimeUnit.SECONDS)
// 设置连接超时时间
.connectTimeout(Optional.ofNullable(config.getReadTimeout()).orElse(DEFAULT_TIMEOUT_SECONDS), TimeUnit.SECONDS);
.connectTimeout(Optional.ofNullable(config.getReadTimeout()).orElse(DEFAULT_TIMEOUT_SECONDS), TimeUnit.SECONDS)
.callTimeout(Optional.ofNullable(config.getReadTimeout()).orElse(DEFAULT_TIMEOUT_SECONDS), TimeUnit.SECONDS);
}
@Override

View File

@ -1,4 +1,4 @@
package tech.powerjob.server.common.constants;
package tech.powerjob.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@ -13,10 +13,16 @@ import lombok.Getter;
@AllArgsConstructor
public enum SwitchableStatus {
/**
*
* 启用
*/
ENABLE(1),
/**
* 关闭
*/
DISABLE(2),
/**
* 软删除
*/
DELETED(99);
private final int v;

View File

@ -22,7 +22,7 @@ import tech.powerjob.server.auth.login.*;
import tech.powerjob.server.auth.service.login.LoginRequest;
import tech.powerjob.server.auth.service.login.PowerJobLoginService;
import tech.powerjob.server.common.Loggers;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.persistence.remote.model.UserInfoDO;
import tech.powerjob.server.persistence.remote.repository.UserInfoRepository;

View File

@ -37,7 +37,7 @@ import tech.powerjob.common.utils.NetUtils;
import tech.powerjob.common.utils.SegmentLock;
import tech.powerjob.remote.framework.base.URL;
import tech.powerjob.server.common.constants.ContainerSourceType;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.module.WorkerInfo;
import tech.powerjob.server.common.utils.OmsFileUtils;
import tech.powerjob.server.extension.LockService;

View File

@ -12,7 +12,7 @@ import tech.powerjob.common.serialize.JsonUtils;
import tech.powerjob.common.utils.NetUtils;
import tech.powerjob.remote.framework.actor.Handler;
import tech.powerjob.remote.framework.actor.ProcessType;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.module.WorkerInfo;
import tech.powerjob.server.common.utils.SpringUtils;
import tech.powerjob.server.monitor.MonitorService;

View File

@ -12,7 +12,7 @@ import tech.powerjob.common.enums.InstanceStatus;
import tech.powerjob.common.enums.TimeExpressionType;
import tech.powerjob.common.enums.WorkflowInstanceStatus;
import tech.powerjob.server.common.Holder;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.core.DispatchService;
import tech.powerjob.server.core.instance.InstanceManager;
import tech.powerjob.server.core.workflow.WorkflowInstanceManager;

View File

@ -11,7 +11,7 @@ import org.springframework.util.CollectionUtils;
import tech.powerjob.common.enums.InstanceStatus;
import tech.powerjob.common.enums.TimeExpressionType;
import tech.powerjob.common.model.LifeCycle;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.timewheel.holder.InstanceTimeWheelService;
import tech.powerjob.server.core.DispatchService;
import tech.powerjob.server.core.instance.InstanceService;

View File

@ -18,7 +18,7 @@ import tech.powerjob.common.request.http.SaveJobInfoRequest;
import tech.powerjob.common.response.JobInfoDTO;
import tech.powerjob.common.serialize.JsonUtils;
import tech.powerjob.server.common.SJ;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.timewheel.holder.InstanceTimeWheelService;
import tech.powerjob.server.core.DispatchService;
import tech.powerjob.server.core.instance.InstanceService;

View File

@ -5,14 +5,12 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import tech.powerjob.common.enums.WorkflowNodeType;
import tech.powerjob.common.exception.PowerJobException;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.core.workflow.algorithm.WorkflowDAG;
import tech.powerjob.server.persistence.remote.model.JobInfoDO;
import tech.powerjob.server.persistence.remote.model.WorkflowNodeInfoDO;
import tech.powerjob.server.persistence.remote.repository.JobInfoRepository;
import javax.annotation.Resource;
/**
* @author Echo009
* @since 2021/12/14

View File

@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
import tech.powerjob.common.enums.WorkflowNodeType;
import tech.powerjob.common.exception.PowerJobException;
import tech.powerjob.common.model.PEWorkflowDAG;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.core.workflow.algorithm.WorkflowDAG;
import tech.powerjob.server.persistence.remote.model.WorkflowInfoDO;
import tech.powerjob.server.persistence.remote.model.WorkflowNodeInfoDO;

View File

@ -18,7 +18,7 @@ import tech.powerjob.common.exception.PowerJobException;
import tech.powerjob.common.model.PEWorkflowDAG;
import tech.powerjob.common.serialize.JsonUtils;
import tech.powerjob.common.utils.CommonUtils;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.utils.SpringUtils;
import tech.powerjob.server.core.alarm.AlarmUtils;
import tech.powerjob.server.core.helper.StatusMappingHelper;

View File

@ -12,7 +12,7 @@ import tech.powerjob.common.enums.WorkflowNodeType;
import tech.powerjob.common.exception.PowerJobException;
import tech.powerjob.common.model.PEWorkflowDAG;
import tech.powerjob.common.response.WorkflowInstanceInfoDTO;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.utils.SpringUtils;
import tech.powerjob.server.core.instance.InstanceService;
import tech.powerjob.server.core.lock.UseCacheLock;

View File

@ -15,7 +15,7 @@ import tech.powerjob.common.model.PEWorkflowDAG;
import tech.powerjob.common.request.http.SaveWorkflowNodeRequest;
import tech.powerjob.common.request.http.SaveWorkflowRequest;
import tech.powerjob.server.common.SJ;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.timewheel.holder.InstanceTimeWheelService;
import tech.powerjob.server.core.scheduler.TimingStrategyService;
import tech.powerjob.server.core.service.NodeValidateService;

View File

@ -11,7 +11,7 @@ import tech.powerjob.common.enums.WorkflowNodeType;
import tech.powerjob.common.exception.PowerJobException;
import tech.powerjob.common.model.PEWorkflowDAG;
import tech.powerjob.common.utils.CommonUtils;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.utils.SpringUtils;
import tech.powerjob.server.core.workflow.WorkflowInstanceManager;
import tech.powerjob.server.core.workflow.algorithm.WorkflowDAGUtils;

View File

@ -17,8 +17,7 @@ import org.springframework.context.annotation.Conditional;
import org.springframework.core.env.Environment;
import tech.powerjob.common.serialize.JsonUtils;
import tech.powerjob.common.utils.CommonUtils;
import tech.powerjob.common.utils.NetUtils;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.spring.condition.PropertyAndOneBeanCondition;
import tech.powerjob.server.extension.dfs.*;
import tech.powerjob.server.persistence.storage.AbstractDFsService;

View File

@ -17,7 +17,7 @@ import org.springframework.context.annotation.Conditional;
import org.springframework.core.env.Environment;
import tech.powerjob.common.serialize.JsonUtils;
import tech.powerjob.common.utils.CommonUtils;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.spring.condition.PropertyAndOneBeanCondition;
import tech.powerjob.server.extension.dfs.DFsService;
import tech.powerjob.server.extension.dfs.DownloadRequest;

View File

@ -12,7 +12,7 @@ import tech.powerjob.server.auth.Permission;
import tech.powerjob.server.auth.RoleScope;
import tech.powerjob.server.auth.interceptor.ApiPermission;
import tech.powerjob.server.common.constants.ContainerSourceType;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.utils.OmsFileUtils;
import tech.powerjob.server.core.container.ContainerService;
import tech.powerjob.server.core.container.ContainerTemplateGenerator;

View File

@ -6,7 +6,7 @@ import tech.powerjob.common.response.ResultDTO;
import tech.powerjob.server.auth.Permission;
import tech.powerjob.server.auth.RoleScope;
import tech.powerjob.server.auth.interceptor.ApiPermission;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.persistence.PageResult;
import tech.powerjob.server.persistence.remote.model.JobInfoDO;
import tech.powerjob.server.persistence.remote.repository.JobInfoRepository;

View File

@ -13,7 +13,7 @@ import tech.powerjob.common.response.ResultDTO;
import tech.powerjob.server.auth.Permission;
import tech.powerjob.server.auth.RoleScope;
import tech.powerjob.server.auth.interceptor.ApiPermission;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.common.module.WorkerInfo;
import tech.powerjob.server.persistence.remote.model.AppInfoDO;
import tech.powerjob.server.persistence.remote.repository.AppInfoRepository;

View File

@ -20,7 +20,7 @@ import tech.powerjob.server.auth.common.PowerJobAuthException;
import tech.powerjob.server.auth.interceptor.ApiPermission;
import tech.powerjob.server.auth.service.WebAuthService;
import tech.powerjob.server.auth.service.login.PowerJobLoginService;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.persistence.remote.model.AppInfoDO;
import tech.powerjob.server.persistence.remote.model.NamespaceDO;
import tech.powerjob.server.persistence.remote.model.UserInfoDO;

View File

@ -11,7 +11,7 @@ import tech.powerjob.common.response.ResultDTO;
import tech.powerjob.server.auth.Permission;
import tech.powerjob.server.auth.RoleScope;
import tech.powerjob.server.auth.interceptor.ApiPermission;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.core.workflow.WorkflowService;
import tech.powerjob.server.persistence.PageResult;
import tech.powerjob.server.persistence.remote.model.WorkflowInfoDO;

View File

@ -2,7 +2,7 @@ package tech.powerjob.server.web.converter;
import org.springframework.beans.BeanUtils;
import tech.powerjob.common.utils.CommonUtils;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.persistence.remote.model.NamespaceDO;
import tech.powerjob.server.web.response.NamespaceBaseVO;

View File

@ -1,6 +1,6 @@
package tech.powerjob.server.web.converter;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.persistence.remote.model.UserInfoDO;
import tech.powerjob.server.web.response.UserBaseVO;

View File

@ -2,7 +2,7 @@ package tech.powerjob.server.web.request;
import tech.powerjob.common.utils.CommonUtils;
import tech.powerjob.server.common.constants.ContainerSourceType;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import lombok.Data;
/**

View File

@ -13,7 +13,7 @@ import tech.powerjob.common.model.LifeCycle;
import tech.powerjob.common.utils.CommonUtils;
import tech.powerjob.server.common.SJ;
import tech.powerjob.common.enums.DispatchStrategy;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.persistence.remote.model.JobInfoDO;
import com.google.common.collect.Lists;
import lombok.Data;

View File

@ -6,7 +6,7 @@ import tech.powerjob.common.enums.TimeExpressionType;
import tech.powerjob.common.model.LifeCycle;
import tech.powerjob.common.model.PEWorkflowDAG;
import tech.powerjob.server.common.SJ;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.persistence.remote.model.WorkflowInfoDO;
import lombok.Data;
import org.springframework.beans.BeanUtils;

View File

@ -13,7 +13,7 @@ import tech.powerjob.server.auth.LoginUserHolder;
import tech.powerjob.server.auth.RoleScope;
import tech.powerjob.server.auth.service.WebAuthService;
import tech.powerjob.server.common.SJ;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.persistence.QueryConvertUtils;
import tech.powerjob.server.persistence.remote.model.AppInfoDO;
import tech.powerjob.server.persistence.remote.model.NamespaceDO;

View File

@ -5,13 +5,12 @@ import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.PageRequest;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.transaction.annotation.Transactional;
import tech.powerjob.common.enums.InstanceStatus;
import tech.powerjob.common.enums.TimeExpressionType;
import tech.powerjob.common.enums.WorkflowInstanceStatus;
import tech.powerjob.common.utils.NetUtils;
import tech.powerjob.server.common.constants.SwitchableStatus;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.server.persistence.remote.model.InstanceInfoDO;
import tech.powerjob.server.persistence.remote.model.JobInfoDO;
import tech.powerjob.server.persistence.remote.model.OmsLockDO;

View File

@ -20,6 +20,7 @@
<!-- 部署时跳过该module -->
<maven.deploy.skip>true</maven.deploy.skip>
<powerjob-client.version>5.1.0</powerjob-client.version>
</properties>
<dependencies>
@ -59,6 +60,12 @@
<version>${powerjob.official.processors.version}</version>
</dependency>
<dependency>
<groupId>tech.powerjob</groupId>
<artifactId>powerjob-client</artifactId>
<version>${powerjob-client.version}</version>
</dependency>
<!-- 高版本 JDK 移除了 JavaEE 的包,需要手动引入 -->
<dependency>
<groupId>javax.xml.bind</groupId>

View File

@ -0,0 +1,194 @@
package tech.powerjob.samples.tester;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import tech.powerjob.client.ClientConfig;
import tech.powerjob.client.IPowerJobClient;
import tech.powerjob.client.PowerJobClient;
import tech.powerjob.common.enums.ExecuteType;
import tech.powerjob.common.enums.ProcessorType;
import tech.powerjob.common.enums.SwitchableStatus;
import tech.powerjob.common.enums.TimeExpressionType;
import tech.powerjob.common.request.http.SaveJobInfoRequest;
import tech.powerjob.common.response.InstanceInfoDTO;
import tech.powerjob.common.response.JobInfoDTO;
import tech.powerjob.common.response.ResultDTO;
import tech.powerjob.official.processors.util.CommonUtils;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* 测试 OpenAPI
*
* @author tjq
* @since 2024/8/11
*/
@Slf4j
@Component
public class OpenApiTester implements BasicProcessor {
private final Map<String, IPowerJobClient> clientCache = Maps.newHashMap();
private static final String NEW_JOB_PARAMS = "{'aa':'bb'}";
private static final String RUN_INSTANCE_PARAMS = "{'key':'value'}";
private static final int NEW_JOB_MAX_INSTANCE_NUM = 9;
@Override
public ProcessResult process(TaskContext context) throws Exception {
IPowerJobClient client = fetchClient(context);
SaveJobInfoRequest saveJobInfoRequest = buildSaveJobInfoRequest();
context.getOmsLogger().info("[newJob] saveJobInfoRequest: {}", JSONObject.toJSONString(saveJobInfoRequest));
ResultDTO<Long> saveJobResult = client.saveJob(saveJobInfoRequest);
context.getOmsLogger().info("[newJob] RESPONSE: {}", JSONObject.toJSONString(saveJobResult));
Long createdJobId = fetchResultData(saveJobResult);
// 测试导出
ResultDTO<SaveJobInfoRequest> exportJobResult = client.exportJob(createdJobId);
context.getOmsLogger().info("[exportJob] exportJobResult: {}", JSONObject.toJSONString(exportJobResult));
SaveJobInfoRequest exportJobInfo = fetchResultData(exportJobResult);
assert exportJobInfo.getJobParams().equals(saveJobInfoRequest.getJobParams());
assert exportJobInfo.getMaxInstanceNum().equals(saveJobInfoRequest.getMaxInstanceNum());
// 测试复制
context.getOmsLogger().info("[copyJob] sourceJobId: {}", createdJobId);
ResultDTO<Long> copyJobResult = client.copyJob(createdJobId);
context.getOmsLogger().info("[copyJob] copyJobResult: {}", JSONObject.toJSONString(copyJobResult));
Long copiedJobId = fetchResultData(copyJobResult);
context.getOmsLogger().info("[disableJob] targetJobId: {}", copiedJobId);
ResultDTO<Void> disableJobResult = client.disableJob(copiedJobId);
fetchResultData(disableJobResult);
context.getOmsLogger().info("[disableJob] disableJobResult: {}", disableJobResult);
ResultDTO<JobInfoDTO> createdJobInfoResult = client.fetchJob(createdJobId);
context.getOmsLogger().info("[fetchJob] createdJobInfo: {}", JSONObject.toJSONString(createdJobInfoResult));
ResultDTO<JobInfoDTO> copiedJobInfoResult = client.fetchJob(copiedJobId);
context.getOmsLogger().info("[fetchJob] copiedJobInfo: {}", JSONObject.toJSONString(copiedJobInfoResult));
JobInfoDTO createdJob = fetchResultData(createdJobInfoResult);
JobInfoDTO copiedJob = fetchResultData(copiedJobInfoResult);
assert createdJob.getJobParams().equals(copiedJob.getJobParams());
assert createdJob.getMaxInstanceNum().equals(copiedJob.getMaxInstanceNum());
assert copiedJob.getStatus() == SwitchableStatus.DISABLE.getV();
ResultDTO<Void> enableJobResult = client.enableJob(copiedJob.getId());
fetchResultData(enableJobResult);
context.getOmsLogger().info("[enableJob] enableJobResult: {}", JSONObject.toJSONString(enableJobResult));
// 再次查询验证 enable
ResultDTO<JobInfoDTO> copiedJobInfoResult2 = client.fetchJob(copiedJobId);
context.getOmsLogger().info("[fetchJob] copiedJobInfoResult2: {}", JSONObject.toJSONString(copiedJobInfoResult2));
JobInfoDTO copiedJob2 = fetchResultData(copiedJobInfoResult2);
assert copiedJob2.getStatus() == SwitchableStatus.ENABLE.getV();
// 删除拷贝出来的任务
ResultDTO<Void> deleteJobResult = client.deleteJob(copiedJobId);
context.getOmsLogger().info("[deleteJob] deleteJobResult: {}", JSONObject.toJSONString(deleteJobResult));
fetchResultData(deleteJobResult);
// 执行任务
ResultDTO<Long> runJobResult = client.runJob(createdJobId, RUN_INSTANCE_PARAMS, 0);
context.getOmsLogger().info("[runJob] runJobResult: {}", JSONObject.toJSONString(runJobResult));
Long instanceId = fetchResultData(runJobResult);
// 等10S理论上应该能执行完成
Thread.sleep(10000);
// 查询任务详情和状态
ResultDTO<InstanceInfoDTO> fetchInstanceInfoResult = client.fetchInstanceInfo(instanceId);
context.getOmsLogger().info("[fetchInstanceInfo] fetchInstanceInfoResult: {}", JSONObject.toJSONString(fetchInstanceInfoResult));
InstanceInfoDTO instanceInfoDTO = fetchResultData(fetchInstanceInfoResult);
ResultDTO<Integer> fetchInstanceStatusResult = client.fetchInstanceStatus(instanceId);
context.getOmsLogger().info("[fetchInstanceStatus] fetchInstanceStatusResult: {}", JSONObject.toJSONString(fetchInstanceStatusResult));
Integer instanceStatus = fetchResultData(fetchInstanceStatusResult);
assert instanceInfoDTO.getStatus() == instanceStatus;
// 回收全部资源
ResultDTO<Void> deleteCreatedJobResult = client.deleteJob(createdJobId);
context.getOmsLogger().info("[deleteJob] deleteCreatedJobResult: {}", JSONObject.toJSONString(deleteCreatedJobResult));
fetchResultData(deleteCreatedJobResult);
return new ProcessResult(true);
}
private static <T> T fetchResultData(ResultDTO<T> resultDTO) {
if (resultDTO.isSuccess()) {
return resultDTO.getData();
}
throw new RuntimeException(resultDTO.getMessage());
}
private SaveJobInfoRequest buildSaveJobInfoRequest() {
SaveJobInfoRequest newJobInfo = new SaveJobInfoRequest();
newJobInfo.setJobName("JobCreateByOpenAPI");
newJobInfo.setJobDescription("Timestamp: " + System.currentTimeMillis());
newJobInfo.setJobParams(NEW_JOB_PARAMS);
newJobInfo.setTimeExpressionType(TimeExpressionType.API);
newJobInfo.setExecuteType(ExecuteType.STANDALONE);
newJobInfo.setProcessorType(ProcessorType.BUILT_IN);
newJobInfo.setProcessorInfo("tech.powerjob.samples.processors.StandaloneProcessorDemo");
newJobInfo.setMaxInstanceNum(NEW_JOB_MAX_INSTANCE_NUM);
newJobInfo.setMinCpuCores(0.01);
newJobInfo.setMinMemorySpace(0.02);
newJobInfo.setMinDiskSpace(0.03);
return newJobInfo;
}
private IPowerJobClient fetchClient(TaskContext context) {
String params = CommonUtils.parseParams(context);
Config clientConfig = Optional.ofNullable(params).map(x -> JSONObject.parseObject(params, Config.class)).orElse(new Config());
String appName = Optional.ofNullable(clientConfig.getAppName()).orElse("powerjob-worker-samples");
String password = Optional.ofNullable(clientConfig.getPassword()).orElse("powerjob123");
List<String> addressList = Optional.ofNullable(clientConfig.getAddressList()).orElse(Lists.newArrayList("127.0.0.1:7700", "127.0.0.1:7701"));
String key = String.format("client_%s_%s_%s", appName, password, addressList);
return clientCache.computeIfAbsent(key, ignore -> initPowerJobClient(appName, password, addressList));
}
private IPowerJobClient initPowerJobClient(String appName, String password, List<String> addressList) {
ClientConfig config = new ClientConfig();
config.setAppName(appName);
config.setPassword(password);
config.setAddressList(addressList);
log.info("[OpenApiTester] initPowerJobClient, config: {}", config);
return new PowerJobClient(config);
}
@Data
public static class Config implements Serializable {
private String appName;
private String password;
private List<String> addressList;
}
}