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;
|
}
|