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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
package tech.powerjob.server.persistence.remote.model;
 
 
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
 
import javax.persistence.*;
import java.util.Date;
 
/**
 * 任务信息表
 *
 * @author tjq
 * @since 2020/3/29
 */
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Table(indexes = {
        @Index(name = "idx01_job_info", columnList = "appId,status,timeExpressionType,nextTriggerTime"),
})
public class JobInfoDO {
 
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "native")
    @GenericGenerator(name = "native", strategy = "native")
    private Long id;
 
    /* ************************** 任务基本信息 ************************** */
    /**
     * 任务名称
     */
    private String jobName;
    /**
     * 任务描述
     */
    private String jobDescription;
    /**
     * 任务所属的应用ID
     */
    private Long appId;
    /**
     * 任务自带的参数
     */
    @Lob
    @Column
    private String jobParams;
 
    /* ************************** 定时参数 ************************** */
    /**
     * 时间表达式类型(CRON/API/FIX_RATE/FIX_DELAY)
     */
    private Integer timeExpressionType;
    /**
     * 时间表达式,CRON/NULL/LONG/LONG
     */
    private String timeExpression;
 
    /* ************************** 执行方式 ************************** */
    /**
     * 执行类型,单机/广播/MR
     */
    private Integer executeType;
    /**
     * 执行器类型,Java/Shell
     */
    private Integer processorType;
    /**
     * 执行器信息
     */
    private String processorInfo;
 
    /* ************************** 运行时配置 ************************** */
    /**
     * 最大同时运行任务数,默认 1
     */
    private Integer maxInstanceNum;
    /**
     * 并发度,同时执行某个任务的最大线程数量
     */
    private Integer concurrency;
    /**
     * 任务整体超时时间
     */
    private Long instanceTimeLimit;
 
    /* ************************** 重试配置 ************************** */
 
    private Integer instanceRetryNum;
 
    private Integer taskRetryNum;
 
    /**
     * 1 正常运行,2 停止(不再调度)
     */
    private Integer status;
    /**
     * 下一次调度时间
     */
    private Long nextTriggerTime;
    /* ************************** 繁忙机器配置 ************************** */
    /**
     * 最低CPU核心数量,0代表不限
     */
    private double minCpuCores;
    /**
     * 最低内存空间,单位 GB,0代表不限
     */
    private double minMemorySpace;
    /**
     * 最低磁盘空间,单位 GB,0代表不限
     */
    private double minDiskSpace;
    /* ************************** 集群配置 ************************** */
    /**
     * 指定机器运行,空代表不限,非空则只会使用其中的机器运行(多值逗号分割)
     */
    private String designatedWorkers;
    /**
     * 最大机器数量
     */
    private Integer maxWorkerCount;
    /**
     * 报警用户ID列表,多值逗号分隔
     */
    private String notifyUserIds;
 
    private Date gmtCreate;
 
    private Date gmtModified;
 
    /**
     * 扩展参数,PowerJob 自身不会使用该数据,留给开发者扩展时使用
     * 比如 WorkerFilter 的自定义 worker 过滤逻辑,可在此传入过滤指标 GpuUsage < 10
     */
    private String extra;
 
    /**
     * 派发策略
     */
    private Integer dispatchStrategy;
    /**
     * 某种派发策略背后的具体配置,值取决于 dispatchStrategy
     */
    private String dispatchStrategyConfig;
 
    private String lifecycle;
    /**
     * 告警配置
     */
    private String alarmConfig;
 
    /**
     * 任务归类,开放给接入方自由定制
     */
    private String tag;
 
    /**
     * 日志配置,包括日志级别、日志方式等配置信息
     */
    private String logConfig;
 
    /**
     * 高级运行时配置
     * 不需要用于索引的高级运行参数,后续统一存储到这里,便于版本升级(尽可能保证数据库表结构稳定)
     */
    private String advancedRuntimeConfig;
}