Skip to content

Commit

Permalink
test:add powerjob inject test
Browse files Browse the repository at this point in the history
  • Loading branch information
orangewest authored and i36lib committed Aug 17, 2024
1 parent 6489cd8 commit 1611d75
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 1 deletion.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ $ java -javaagent=/dir/to/autotrace4j.jar=com.your-domain.biz1.pkg1,com.your-dom
​ 已支持XXL Job和Spring的Scheduled定时任务在产生时生成TraceId:

- XxlJob Handler:`com.handler.com.xxl.job.core.IJobHandler`
- Spring Schedule Task:`org.springframework.scheduling.annotation.Scheduled`
- Spring Schedule Task:`org.springframework.scheduling.annotation.Scheduled`
- PowerJob Processor:`tech.powerjob.worker.core.processor.sdk.BasicProcessor`

### 7、Logging

Expand Down
18 changes: 18 additions & 0 deletions src/test/java/io/github/artlibs/autotrace4j/InterceptorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.alibaba.fastjson2.JSONObject;
import io.github.artlibs.autotrace4j.context.AutoTraceCtx;
import io.github.artlibs.testsupport.Injected;
import io.github.artlibs.testsupport.PowerJobCase;
import io.github.artlibs.testsupport.ScheduledCase;
import io.github.artlibs.testsupport.TupleResult;
import io.github.artlibs.testsupport.XxlJobCase.*;
Expand All @@ -17,6 +18,7 @@
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.*;
import org.slf4j.MDC;
import tech.powerjob.worker.core.processor.TaskContext;

import java.io.BufferedReader;
import java.io.IOException;
Expand Down Expand Up @@ -218,6 +220,22 @@ void testSpringScheduled() {
Assertions.assertNull(tuple.getValue3());
}

@Test
void testPowerJobProcessor() throws Exception {
// 01.Prepare
PowerJobCase pj = new PowerJobCase();

// 02.When
pj.process(new TaskContext());

// 03.Verify
TupleResult tuple = pj.getInjected();
// expected a new traceId, spanId, and no parent span id
Assertions.assertNotEquals(initTraceId, tuple.getValue1());
Assertions.assertNotEquals(initSpanId, tuple.getValue2());
Assertions.assertNull(tuple.getValue3());
}

@Test
void testSlf4jMDC() {
// 01.Prepare & 02.When
Expand Down
14 changes: 14 additions & 0 deletions src/test/java/io/github/artlibs/testsupport/PowerJobCase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package io.github.artlibs.testsupport;

import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;

public class PowerJobCase implements BasicProcessor, Injected {
@Override
public ProcessResult process(TaskContext context) throws Exception {
graspInjected();
return new ProcessResult(true);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package tech.powerjob.worker.core.processor;

public class ProcessResult {

private boolean success = false;

private String msg;

public ProcessResult(boolean success) {
this.success = success;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package tech.powerjob.worker.core.processor;

public class TaskContext {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package tech.powerjob.worker.core.processor.sdk;

import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;

/**
* 基础的处理器,适用于单机执行
*
* @author tjq
* @since 2020/3/18
*/
public interface BasicProcessor {

/**
* 核心处理逻辑
* 可通过 {@link TaskContext#getWorkflowContext()} 方法获取工作流上下文
*
* @param context 任务上下文,可通过 jobParams 和 instanceParams 分别获取控制台参数和OpenAPI传递的任务实例参数
* @return 处理结果,msg有长度限制,超长会被裁剪,不允许返回 null
* @throws Exception 异常,允许抛出异常,但不推荐,最好由业务开发者自己处理
*/
ProcessResult process(TaskContext context) throws Exception;
}

0 comments on commit 1611d75

Please sign in to comment.