package tech.powerjob.samples.processors; import tech.powerjob.common.utils.NetUtils; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.TaskResult; import tech.powerjob.worker.core.processor.sdk.BroadcastProcessor; import tech.powerjob.worker.log.OmsLogger; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.List; /** * 广播处理器 示例 * * @author tjq * @since 2020/4/17 */ @Slf4j @Component public class BroadcastProcessorDemo implements BroadcastProcessor { @Override public ProcessResult preProcess(TaskContext context) { System.out.println("===== BroadcastProcessorDemo#preProcess ======"); context.getOmsLogger().info("BroadcastProcessorDemo#preProcess, current host: {}", NetUtils.getLocalHost4Test()); if ("rootFailed".equals(context.getJobParams())) { return new ProcessResult(false, "console need failed"); } else { return new ProcessResult(true); } } @Override public ProcessResult process(TaskContext taskContext) throws Exception { OmsLogger logger = taskContext.getOmsLogger(); System.out.println("===== BroadcastProcessorDemo#process ======"); logger.info("BroadcastProcessorDemo#process, current host: {}", NetUtils.getLocalHost4Test()); long sleepTime = 1000; try { sleepTime = Long.parseLong(taskContext.getJobParams()); } catch (Exception e) { logger.warn("[BroadcastProcessor] parse sleep time failed!", e); } Thread.sleep(Math.max(sleepTime, 1000)); return new ProcessResult(true); } @Override public ProcessResult postProcess(TaskContext context, List taskResults) { System.out.println("===== BroadcastProcessorDemo#postProcess ======"); context.getOmsLogger().info("BroadcastProcessorDemo#postProcess, current host: {}, taskResult: {}", NetUtils.getLocalHost4Test(), taskResults); return new ProcessResult(true, "success"); } }