package tech.powerjob.samples.processors; import org.apache.commons.lang3.StringUtils; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.sdk.BasicProcessor; import tech.powerjob.worker.log.OmsLogger; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.Collections; /** * 单机处理器 示例 * * @author tjq * @since 2020/4/17 */ @Slf4j @Component("testBaseProcessor") public class StandaloneProcessorDemo implements BasicProcessor { @Override public ProcessResult process(TaskContext context) throws Exception { OmsLogger omsLogger = context.getOmsLogger(); omsLogger.info("StandaloneProcessorDemo start process,context is {}.", context); omsLogger.info("Notice! If you want this job process failed, your jobParams need to be 'failed'"); omsLogger.info("Let's test the exception~"); // 测试异常日志 try { Collections.emptyList().add("277"); } catch (Exception e) { omsLogger.error("oh~it seems that we have an exception~", e); } log.info("================ StandaloneProcessorDemo#process ================"); log.info("jobParam:{}", context.getJobParams()); log.info("instanceParams:{}", context.getInstanceParams()); String param; // 解析参数,非处于工作流中时,优先取实例参数(允许动态[instanceParams]覆盖静态参数[jobParams]) if (context.getWorkflowContext() == null) { param = StringUtils.isBlank(context.getInstanceParams()) ? context.getJobParams() : context.getInstanceParams(); } else { param = context.getJobParams(); } // 根据参数判断是否成功 boolean success = !"failed".equals(param); omsLogger.info("StandaloneProcessorDemo finished process,success: {}", success); omsLogger.info("anyway, we finished the job successfully~Congratulations!"); return new ProcessResult(success, context + ": " + success); } }