mirror of
https://github.com/PowerJob/PowerJob.git
synced 2025-07-17 00:00:04 +08:00
fix: server can't record zero cost processor's status #620
This commit is contained in:
parent
174696066d
commit
a7394e518c
@ -10,6 +10,7 @@ import tech.powerjob.common.enums.TimeExpressionType;
|
|||||||
import tech.powerjob.common.model.LifeCycle;
|
import tech.powerjob.common.model.LifeCycle;
|
||||||
import tech.powerjob.common.request.ServerStopInstanceReq;
|
import tech.powerjob.common.request.ServerStopInstanceReq;
|
||||||
import tech.powerjob.common.request.TaskTrackerReportInstanceStatusReq;
|
import tech.powerjob.common.request.TaskTrackerReportInstanceStatusReq;
|
||||||
|
import tech.powerjob.common.utils.CommonUtils;
|
||||||
import tech.powerjob.remote.framework.base.URL;
|
import tech.powerjob.remote.framework.base.URL;
|
||||||
import tech.powerjob.server.common.module.WorkerInfo;
|
import tech.powerjob.server.common.module.WorkerInfo;
|
||||||
import tech.powerjob.server.common.timewheel.holder.HashedWheelTimerHolder;
|
import tech.powerjob.server.common.timewheel.holder.HashedWheelTimerHolder;
|
||||||
@ -81,6 +82,14 @@ public class InstanceManager implements TransportServiceAware {
|
|||||||
log.warn("[InstanceManager-{}] can't find InstanceInfo from database", instanceId);
|
log.warn("[InstanceManager-{}] can't find InstanceInfo from database", instanceId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 考虑极端情况:Processor 处理耗时小于 server 写 DB 耗时,会导致状态上报时无 taskTracker 地址,此处等待后重新从DB获取数据 GitHub#620
|
||||||
|
if (StringUtils.isEmpty(instanceInfo.getTaskTrackerAddress())) {
|
||||||
|
log.warn("[InstanceManager-{}] TaskTrackerAddress is empty, server will wait then acquire again!", instanceId);
|
||||||
|
CommonUtils.easySleep(277);
|
||||||
|
instanceInfo = instanceInfoRepository.findByInstanceId(instanceId);
|
||||||
|
}
|
||||||
|
|
||||||
int originStatus = instanceInfo.getStatus();
|
int originStatus = instanceInfo.getStatus();
|
||||||
// 丢弃过期的上报数据
|
// 丢弃过期的上报数据
|
||||||
if (req.getReportTime() <= instanceInfo.getLastReportTime()) {
|
if (req.getReportTime() <= instanceInfo.getLastReportTime()) {
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
package tech.powerjob.samples.processors.test;
|
||||||
|
|
||||||
|
import tech.powerjob.worker.core.processor.ProcessResult;
|
||||||
|
import tech.powerjob.worker.core.processor.TaskContext;
|
||||||
|
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ZeroCostTestProcessor
|
||||||
|
*
|
||||||
|
* @author tjq
|
||||||
|
* @since 2023/5/7
|
||||||
|
*/
|
||||||
|
public class ZeroCostTestProcessor implements BasicProcessor {
|
||||||
|
@Override
|
||||||
|
public ProcessResult process(TaskContext context) throws Exception {
|
||||||
|
return new ProcessResult(true, "zero cost");
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user