feat: remove all spring dependencies in powerjob-worker

This commit is contained in:
tjq 2023-01-20 17:08:40 +08:00
parent 8e96fdacc6
commit 3892c38785
3 changed files with 37 additions and 15 deletions

View File

@ -1,11 +1,15 @@
package tech.powerjob.worker.core.processor.runnable;
import com.google.common.base.Stopwatch;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import tech.powerjob.common.enums.ExecuteType;
import tech.powerjob.worker.common.WorkerRuntime;
import tech.powerjob.common.serialize.SerializerUtils;
import tech.powerjob.worker.common.ThreadLocalStore;
import tech.powerjob.worker.common.WorkerRuntime;
import tech.powerjob.worker.common.constants.TaskConstant;
import tech.powerjob.worker.common.constants.TaskStatus;
import tech.powerjob.common.serialize.SerializerUtils;
import tech.powerjob.worker.common.utils.TransportUtils;
import tech.powerjob.worker.common.utils.WorkflowContextUtils;
import tech.powerjob.worker.core.processor.ProcessResult;
@ -20,11 +24,6 @@ import tech.powerjob.worker.log.OmsLogger;
import tech.powerjob.worker.persistence.TaskDO;
import tech.powerjob.worker.pojo.model.InstanceInfo;
import tech.powerjob.worker.pojo.request.ProcessorReportTaskStatusReq;
import com.google.common.base.Stopwatch;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.Collections;
import java.util.List;
@ -105,8 +104,11 @@ public class HeavyProcessorRunnable implements Runnable {
private TaskContext constructTaskContext() {
TaskContext taskContext = new TaskContext();
BeanUtils.copyProperties(task, taskContext);
taskContext.setJobId(instanceInfo.getJobId());
taskContext.setInstanceId(task.getInstanceId());
taskContext.setSubInstanceId(task.getSubInstanceId());
taskContext.setTaskId(task.getTaskId());
taskContext.setTaskName(task.getTaskName());
taskContext.setMaxRetryTimes(instanceInfo.getTaskRetryNum());
taskContext.setCurrentRetryTimes(task.getFailedCnt());
taskContext.setJobParams(instanceInfo.getJobParams());
@ -120,7 +122,7 @@ public class HeavyProcessorRunnable implements Runnable {
}
private WorkflowContext constructWorkflowContext() {
return new WorkflowContext(instanceInfo.getWfInstanceId(),instanceInfo.getInstanceParams());
return new WorkflowContext(instanceInfo.getWfInstanceId(), instanceInfo.getInstanceParams());
}
/**

View File

@ -2,7 +2,6 @@ package tech.powerjob.worker.core.tracker.task;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import tech.powerjob.common.enums.InstanceStatus;
import tech.powerjob.common.model.InstanceDetail;
import tech.powerjob.common.request.ServerScheduleJobReq;
@ -61,7 +60,20 @@ public abstract class TaskTracker {
this.instanceId = req.getInstanceId();
this.instanceInfo = new InstanceInfo();
BeanUtils.copyProperties(req, instanceInfo);
// PowerJob 值拷贝场景不多引入三方值拷贝类库可能引入类冲突等问题综合评估手写 ROI 最高
instanceInfo.setJobId(req.getJobId());
instanceInfo.setInstanceId(req.getInstanceId());
instanceInfo.setWfInstanceId(req.getWfInstanceId());
instanceInfo.setExecuteType(req.getExecuteType());
instanceInfo.setProcessorType(req.getProcessorType());
instanceInfo.setProcessorInfo(req.getProcessorInfo());
instanceInfo.setJobParams(req.getJobParams());
instanceInfo.setInstanceParams(req.getInstanceParams());
instanceInfo.setThreadConcurrency(req.getThreadConcurrency());
instanceInfo.setTaskRetryNum(req.getTaskRetryNum());
instanceInfo.setLogConfig(req.getLogConfig());
// 特殊处理超时时间
if (instanceInfo.getInstanceTimeoutMS() <= 0) {
instanceInfo.setInstanceTimeoutMS(Integer.MAX_VALUE);
@ -94,7 +106,12 @@ public abstract class TaskTracker {
log.warn("[TaskTracker-{}] create TaskTracker from request({}) failed.", req.getInstanceId(), req, e);
// 直接发送失败请求
TaskTrackerReportInstanceStatusReq response = new TaskTrackerReportInstanceStatusReq();
BeanUtils.copyProperties(req, response);
response.setAppId(workerRuntime.getAppId());
response.setJobId(req.getJobId());
response.setInstanceId(req.getInstanceId());
response.setWfInstanceId(req.getWfInstanceId());
response.setInstanceStatus(InstanceStatus.FAILED.getV());
response.setResult(String.format("init TaskTracker failed, reason: %s", e.toString()));
response.setReportTime(System.currentTimeMillis());

View File

@ -8,7 +8,6 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import tech.powerjob.common.enums.ExecuteType;
import tech.powerjob.common.enums.InstanceStatus;
import tech.powerjob.common.enums.TimeExpressionType;
@ -135,10 +134,14 @@ public class FrequentTaskTracker extends HeavyTaskTracker {
List<InstanceDetail.SubInstanceDetail> history = Lists.newLinkedList();
recentSubInstanceInfo.forEach((subId, subInstanceInfo) -> {
InstanceDetail.SubInstanceDetail subDetail = new InstanceDetail.SubInstanceDetail();
BeanUtils.copyProperties(subInstanceInfo, subDetail);
subDetail.setSubInstanceId(subId);
subDetail.setStartTime(subInstanceInfo.getStartTime());
subDetail.setFinishedTime(subInstanceInfo.getFinishedTime());
subDetail.setResult(subInstanceInfo.getResult());
InstanceStatus status = InstanceStatus.of(subInstanceInfo.status);
subDetail.setStatus(status.getV());
subDetail.setSubInstanceId(subId);
history.add(subDetail);
});