/**
|
* BladeX Commercial License Agreement
|
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
|
* <p>
|
* Use of this software is governed by the Commercial License Agreement
|
* obtained after purchasing a license from BladeX.
|
* <p>
|
* 1. This software is for development use only under a valid license
|
* from BladeX.
|
* <p>
|
* 2. Redistribution of this software's source code to any third party
|
* without a commercial license is strictly prohibited.
|
* <p>
|
* 3. Licensees may copyright their own code but cannot use segments
|
* from this software for such purposes. Copyright of this software
|
* remains with BladeX.
|
* <p>
|
* Using this software signifies agreement to this License, and the software
|
* must not be used for illegal purposes.
|
* <p>
|
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
|
* not liable for any claims arising from secondary or illegal development.
|
* <p>
|
* Author: Chill Zhuang (bladejava@qq.com)
|
*/
|
package org.springblade.job.pojo.entity;
|
|
import com.baomidou.mybatisplus.annotation.TableName;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
import lombok.Data;
|
import lombok.EqualsAndHashCode;
|
import org.springblade.core.mp.base.BaseEntity;
|
|
import java.io.Serial;
|
import java.math.BigDecimal;
|
|
/**
|
* 任务信息表 实体类
|
*
|
* @author BladeX
|
*/
|
@Data
|
@TableName("blade_job_info")
|
@EqualsAndHashCode(callSuper = true)
|
@Schema(description = "任务信息表")
|
public class JobInfo extends BaseEntity {
|
|
@Serial
|
private static final long serialVersionUID = 1L;
|
|
/**
|
* 任务服务ID
|
*/
|
@Schema(description = "任务服务ID")
|
private Long jobServerId;
|
/**
|
* 任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID
|
*/
|
@Schema(description = "任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID")
|
private Long jobId;
|
/**
|
* 任务名称
|
*/
|
@Schema(description = "任务名称")
|
private String jobName;
|
/**
|
* 任务描述
|
*/
|
@Schema(description = "任务描述")
|
private String jobDescription;
|
/**
|
* 任务参数,Processor#process 方法入参 TaskContext 对象的 jobParams 字段
|
*/
|
@Schema(description = "任务参数,Processor#process 方法入参 TaskContext 对象的 jobParams 字段")
|
private String jobParams;
|
/**
|
* 时间表达式类型,枚举值
|
*/
|
@Schema(description = "时间表达式类型,枚举值")
|
private Integer timeExpressionType;
|
/**
|
* 时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式
|
*/
|
@Schema(description = "时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式")
|
private String timeExpression;
|
/**
|
* 执行类型,枚举值
|
*/
|
@Schema(description = "执行类型,枚举值")
|
private Integer executeType;
|
/**
|
* 处理器类型,枚举值
|
*/
|
@Schema(description = "处理器类型,枚举值")
|
private Integer processorType;
|
/**
|
* 处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo
|
*/
|
@Schema(description = "处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo")
|
private String processorInfo;
|
/**
|
* 最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)
|
*/
|
@Schema(description = "最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)")
|
private Integer maxInstanceNum;
|
/**
|
* 单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量
|
*/
|
@Schema(description = "单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量")
|
private Integer concurrency;
|
/**
|
* 任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败
|
*/
|
@Schema(description = "任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败")
|
private Long instanceTimeLimit;
|
/**
|
* instanceRetryNum 任务实例重试次数,整个任务失败时重试,代价大,不推荐使用
|
*/
|
@Schema(description = "instanceRetryNum 任务实例重试次数,整个任务失败时重试,代价大,不推荐使用")
|
private Integer instanceRetryNum;
|
/**
|
* taskRetryNum Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用
|
*/
|
@Schema(description = "taskRetryNum Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用")
|
private Integer taskRetryNum;
|
/**
|
* minCpuCores 最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制
|
*/
|
@Schema(description = "minCpuCores 最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制")
|
private BigDecimal minCpuCores;
|
/**
|
* 最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制
|
*/
|
@Schema(description = "最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制")
|
private BigDecimal minMemorySpace;
|
/**
|
* 最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制
|
*/
|
@Schema(description = "最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制")
|
private BigDecimal minDiskSpace;
|
/**
|
* 指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器
|
*/
|
@Schema(description = "指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器")
|
private String designatedWorkers;
|
/**
|
* 最大执行机器数量,限定调动执行的机器数量,0代表无限制
|
*/
|
@Schema(description = "最大执行机器数量,限定调动执行的机器数量,0代表无限制")
|
private Integer maxWorkerCount;
|
/**
|
* 接收报警的用户 ID 列表
|
*/
|
@Schema(description = "接收报警的用户 ID 列表")
|
private String notifyUserIds;
|
/**
|
* 是否启用该任务,未启用的任务不会被调度
|
*/
|
@Schema(description = "是否启用该任务,未启用的任务不会被调度")
|
private Integer enable;
|
/**
|
* 调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST)
|
*/
|
@Schema(description = "调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST)")
|
private Integer dispatchStrategy;
|
/**
|
* lifecycle 生命周期(预留,用于指定定时调度任务的生效时间范围)
|
*/
|
@Schema(description = "lifecycle 生命周期(预留,用于指定定时调度任务的生效时间范围)")
|
private String lifecycle;
|
/**
|
* 错误阈值,0代表不限制
|
*/
|
@Schema(description = "错误阈值,0代表不限制")
|
private Integer alertThreshold;
|
/**
|
* 统计的窗口长度(s),0代表不限制
|
*/
|
@Schema(description = "统计的窗口长度(s),0代表不限制")
|
private Integer statisticWindowLen;
|
/**
|
* 沉默时间窗口(s),0代表不限制
|
*/
|
@Schema(description = "沉默时间窗口(s),0代表不限制")
|
private Integer silenceWindowLen;
|
/**
|
* 日志配置
|
*/
|
@Schema(description = "日志配置")
|
private Integer logType;
|
/**
|
* 日志配置
|
*/
|
@Schema(description = "日志级别")
|
private Integer logLevel;
|
/**
|
* 扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段)
|
*/
|
@Schema(description = "扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段)")
|
private String extra;
|
|
}
|