package tech.powerjob.samples.tester; import com.alibaba.fastjson.JSONObject; 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 org.springframework.stereotype.Component; /** * 测试 Oms 在线日志的性能 * * @author tjq * @since 2020/5/3 */ @Component public class OmsLogPerformanceTester implements BasicProcessor { private static final int BATCH = 1000; @Override public ProcessResult process(TaskContext context) throws Exception { OmsLogger omsLogger = context.getOmsLogger(); // 控制台参数,格式为 {"num":10000, "interval": 200} JSONObject jobParams = JSONObject.parseObject(context.getJobParams()); Long num = jobParams.getLong("num"); Long interval = jobParams.getLong("interval"); omsLogger.info("ready to start to process, current JobParams is {}.", jobParams); RuntimeException re = new RuntimeException("This is a exception~~~"); long times = (long) Math.ceil(1.0 * num / BATCH); for (long i = 0; i < times; i++) { for (long j = 0; j < BATCH; j++) { long index = i * BATCH + j; System.out.println("send index: " + index); omsLogger.info("testing omsLogger's performance, current index is {}.", index); } omsLogger.error("Oh, it seems that we have got an exception.", re); try { Thread.sleep(interval); }catch (Exception ignore) { } } omsLogger.info("anyway, we finished the job~configuration~"); return new ProcessResult(true, "good job"); } }