WangHan
2024-09-12 d5855a4926926698b740bc6c7ba489de47adb68b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package tech.powerjob.worker.core.processor;
 
import com.fasterxml.jackson.annotation.JsonIgnore;
import tech.powerjob.worker.common.PowerJobWorkerConfig;
import tech.powerjob.worker.log.OmsLogger;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
 
/**
 * 任务上下文
 * 概念统一,所有的worker只处理Task,Job和JobInstance的概念只存在于Server和TaskTracker
 * 单机任务:整个Job变成一个Task
 * 广播任务:整个job变成一堆一样的Task
 * MR 任务:被map出来的任务都视为根Task的子Task
 * <p>
 * 2021/02/04 移除 fetchUpstreamTaskResult 方法
 *
 * @author tjq
 * @author Echo009
 * @since 2020/3/18
 */
@Getter
@Setter
@ToString
@Slf4j
public class TaskContext {
 
    private Long jobId;
 
    private Long instanceId;
 
    private Long subInstanceId;
 
    private String taskId;
 
    private String taskName;
    /**
     * 通过控制台传递的参数
     */
    private String jobParams;
    /**
     * 任务实例运行中参数
     * 若该任务实例通过 OpenAPI 触发,则该值为 OpenAPI 传递的参数
     * 若该任务为工作流的某个节点,则该值为工作流实例的上下文 ( wfContext )
     */
    private String instanceParams;
    /**
     * 最大重试次数
     */
    private int maxRetryTimes;
    /**
     * 当前重试次数
     */
    private int currentRetryTimes;
    /**
     * 子任务对象,通过Map/MapReduce处理器的map方法生成
     */
    private Object subTask;
    /**
     * 在线日志记录
     */
    @JsonIgnore
    private OmsLogger omsLogger;
    /**
     * 用户自定义上下文,通过 {@link PowerJobWorkerConfig} 初始化
     */
    private Object userContext;
    /**
     * 工作流上下文数据
     */
    private WorkflowContext workflowContext;
 
}