mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-13 02:25:06 +08:00
初始化 quartz 模块~
This commit is contained in:
@ -1 +0,0 @@
|
||||
package cn.iocoder.dashboard.modules.infra.controller;
|
@ -0,0 +1,97 @@
|
||||
package cn.iocoder.dashboard.modules.infra.dal.dataobject.job;
|
||||
|
||||
import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
|
||||
import cn.iocoder.dashboard.modules.infra.enums.job.InfJobStatusEnum;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 定时任务表
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@TableName("inf_job")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class InfJob extends BaseDO {
|
||||
|
||||
/**
|
||||
* 任务编号
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
private String name;
|
||||
/**
|
||||
* 任务分组
|
||||
*/
|
||||
@TableField("`group`")
|
||||
private String group;
|
||||
/**
|
||||
* 任务状态
|
||||
*
|
||||
* 枚举 {@link InfJobStatusEnum}
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 处理器的名字
|
||||
*/
|
||||
private String handlerName;
|
||||
/**
|
||||
* 处理器的参数
|
||||
*/
|
||||
private String handlerParam;
|
||||
|
||||
// ========== 时间相关字段 ==========
|
||||
|
||||
/**
|
||||
* CRON 表达式
|
||||
*/
|
||||
private String cronExpression;
|
||||
/**
|
||||
* 最后一次执行的开始时间
|
||||
*
|
||||
* 该字段在任务执行结束后,进行记录
|
||||
*/
|
||||
private Date executeBeginTime;
|
||||
/**
|
||||
* 最后一次执行的结束时间
|
||||
*
|
||||
* 该字段在任务执行结束后,进行记录
|
||||
*/
|
||||
private Date executeEndTime;
|
||||
/**
|
||||
* 上一次触发时间,来自 Quartz SCHE_TRIGGERS 表
|
||||
*/
|
||||
private Date firePrevTime;
|
||||
/**
|
||||
* 下一次触发时间,来自 Quartz SCHE_TRIGGERS 表
|
||||
*
|
||||
* 在触发器状态从 `ACQUIRED` 变成 `BLOCKED` 时,就会更新 PREV_FIRE_TIME、NEXT_FIRE_TIME,然后定时任务才正式开始执行
|
||||
*/
|
||||
private Date fireNextTime;
|
||||
|
||||
// ========== 监控相关字段 ==========
|
||||
/**
|
||||
* 监控开关
|
||||
*/
|
||||
private Boolean monitorSwitch;
|
||||
/**
|
||||
* 监控超时时间,单位:毫秒
|
||||
*/
|
||||
private Integer monitorTimeout;
|
||||
|
||||
// TODO misfirePolicy
|
||||
// TODO concurrent
|
||||
// TODO 失败重试
|
||||
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
package cn.iocoder.dashboard.modules.infra.dal.dataobject.job;
|
||||
|
||||
import cn.iocoder.dashboard.common.pojo.CommonResult;
|
||||
import cn.iocoder.dashboard.framework.mybatis.core.dataobject.BaseDO;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 定时任务的执行日志 sys_job_log
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@TableName("inf_job_log")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class InfJobLog extends BaseDO {
|
||||
|
||||
/**
|
||||
* 日志编号
|
||||
*/
|
||||
private Long id;
|
||||
/**
|
||||
* 任务编号
|
||||
*
|
||||
* 关联 {@link InfJob#getId()}
|
||||
*/
|
||||
private Long jobId;
|
||||
/**
|
||||
* 任务名称
|
||||
*
|
||||
* 冗余字段 {@link InfJob#getName()}
|
||||
*/
|
||||
private String jobName;
|
||||
/**
|
||||
* 任务分组
|
||||
*
|
||||
* 冗余字段 {@link InfJob#getGroup()}
|
||||
*/
|
||||
private String jobGroup;
|
||||
/**
|
||||
* 处理器的名字
|
||||
*
|
||||
* 冗余字段 {@link InfJob#getHandlerName()}
|
||||
*/
|
||||
private String handlerName;
|
||||
/**
|
||||
* 处理器的参数
|
||||
*
|
||||
* 冗余字段 {@link InfJob#getHandlerParam()}
|
||||
*/
|
||||
private String handlerParam;
|
||||
|
||||
/**
|
||||
* 开始执行时间
|
||||
*/
|
||||
private Date startTime;
|
||||
/**
|
||||
* 结束执行时间
|
||||
*/
|
||||
private Date endTime;
|
||||
/**
|
||||
* 执行时长,单位:毫秒
|
||||
*/
|
||||
private Integer duration;
|
||||
/**
|
||||
* 结果码
|
||||
*
|
||||
* 目前使用的 {@link CommonResult#getCode()} 属性
|
||||
*/
|
||||
private Integer resultCode;
|
||||
/**
|
||||
* 结果提示
|
||||
*
|
||||
* 目前使用的 {@link CommonResult#getMsg()} 属性
|
||||
*/
|
||||
private String resultMsg;
|
||||
/**
|
||||
* 结果数据
|
||||
*
|
||||
* 如果是对象,则使用 JSON 格式化
|
||||
*/
|
||||
private String resultData;
|
||||
|
||||
}
|
@ -1 +0,0 @@
|
||||
package cn.iocoder.dashboard.modules.infra.dal.dataobject;
|
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.dashboard.modules.infra.enums.job;
|
||||
|
||||
import com.google.common.collect.Sets;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.quartz.impl.jdbcjobstore.Constants.*;
|
||||
|
||||
/**
|
||||
* 任务状态的枚举
|
||||
*
|
||||
* @author 芋道源码
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum InfJobStatusEnum {
|
||||
|
||||
/**
|
||||
* 初始化中
|
||||
*/
|
||||
INIT(0, Collections.emptySet()),
|
||||
/**
|
||||
* 开启运行
|
||||
*/
|
||||
NORMAL(1, Sets.newHashSet(STATE_WAITING, STATE_ACQUIRED, STATE_BLOCKED)),
|
||||
/**
|
||||
* 异常运行
|
||||
*/
|
||||
EXCEPTION(2, Sets.newHashSet(STATE_COMPLETE)),
|
||||
/**
|
||||
* 暂停运行
|
||||
*/
|
||||
STOP(3, Sets.newHashSet(STATE_PAUSED, STATE_PAUSED_BLOCKED));
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private final Integer status;
|
||||
/**
|
||||
* 对应的 Quartz 触发器的状态集合
|
||||
*/
|
||||
private final Set<String> quartzStates;
|
||||
|
||||
}
|
Reference in New Issue
Block a user