package tech.powerjob.worker.pojo.request; import tech.powerjob.common.PowerSerializable; import lombok.Data; import lombok.NoArgsConstructor; /** * ProcessorTracker 定时向 TaskTracker 上报健康状态 * * @author tjq * @since 2020/3/27 */ @Data @NoArgsConstructor public class ProcessorTrackerStatusReportReq implements PowerSerializable { public static final int IDLE = 1; public static final int LOAD = 2; // IDLE 代表 ProcessorTracker 长期处于空闲状态,LOAD 代表 负载上报请求 private int type; private Long instanceId; /** * 请求发起时间 */ private long time; /** * 等待执行的任务数量,内存队列数 + 数据库持久数 */ private long remainTaskNum; /** * 本机地址 */ private String address; public static ProcessorTrackerStatusReportReq buildIdleReport(Long instanceId) { ProcessorTrackerStatusReportReq req = new ProcessorTrackerStatusReportReq(); req.type = IDLE; req.instanceId = instanceId; req.time = System.currentTimeMillis(); req.setRemainTaskNum(0); return req; } public static ProcessorTrackerStatusReportReq buildLoadReport(Long instanceId, Long remainTaskNum) { ProcessorTrackerStatusReportReq req = new ProcessorTrackerStatusReportReq(); req.type = LOAD; req.instanceId = instanceId; req.time = System.currentTimeMillis(); req.setRemainTaskNum(remainTaskNum); return req; } }