`
kanpiaoxue
  • 浏览: 1781237 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

调度任务运行的状态

 
阅读更多

 

 

import com.google.common.collect.Maps;

import java.util.Arrays;
import java.util.Map;

/**
 * @ClassName: TaskRunningStatusEnum
 * @author kanpiaoxue
 * @version 1.0
 * @CreateTime: 2018/10/19 11:40:39
 * @Description: 任务实例运行状态枚举类
 */
public enum TaskInstanceRunningStatusEnum {
    /**
     * 任务的实例一经初始化完成就处于“待运行”的状态
     */
    WAITING(1, "待运行"),
    /**
     * 任务的实例满足运行条件之后,处于“已就绪”状态。
     * 比如:
     * 时间驱动类型的定时任务到了可以运行的时间点;
     * 事件驱动类型的有上游依赖关系的任务的所有上游都已经成功运行,它自身就可以运行;
     */
    READY(2, "已就绪"),
    /**
     * 任务实例分发给运行的执行机之后,处于“已分发”状态
     */
    DISPATCHED(3, "已分发"),
    /**
     * 任务实例在执行机上面开始执行的时候处于“运行中”状态
     */
    RUNNING(4, "运行中"),
    /**
     * 任务实例运行成功
     */
    SUCCESS(5, "运行成功"),
    /**
     * 任务实例运行失败
     */
    FAILED(6, "运行失败"),
    /**
     * 任务实例在“非终态("待运行"、"已就绪"、"已分发"、"运行中")”的时候被人为杀死的时候处于“已杀死”状态
     */
    KILLED(7, "已杀死"),
    /**
     * 任务实例在运行的过程中可能被下线、上游所有依赖关系被删除等一些导致任务失去本次运行意义的操作,都导致任务处于“已失效”的状态
     */
    INVALID(8, "已失效");

    private static final Map<Integer, TaskInstanceRunningStatusEnum> MAP = Maps.newLinkedHashMap();
    static {
        Arrays.stream(values()).forEach(obj -> {
            MAP.put(obj.getCode(), obj);
        });
    }

    /**
     * @param code
     *            数字码
     * @return DictAuthTypeEnum的枚举类
     * @Description 根据数字码得到枚举类的实例
     */
    public static TaskInstanceRunningStatusEnum getDictAuthTypeEnum(int code) {
        return MAP.get(code);
    }

    /**
     * 数字码
     */
    private final int code;

    /**
     * 文本内容
     */
    private final String text;

    private TaskInstanceRunningStatusEnum(int code, String text) {
        this.code = code;
        this.text = text;
    }

    /**
     * @return the code
     */
    public int getCode() {
        return code;
    }

    /**
     * @return the text
     */
    public String getText() {
        return text;
    }
}

 

 

import com.google.common.collect.Maps;

import java.util.Arrays;
import java.util.Map;

/**
 * @ClassName: TaskStatusEnum
 * @author kanpiaoxue
 * @version 1.0
 * @CreateTime: 2018/10/19 11:52:13
 * @Description: 任务自身状态
 */
public enum TaskStatusEnum {
    OFFLINE(0, "下线状态"), ONLINE(1, "在线状态");

    private static final Map<Integer, TaskStatusEnum> MAP = Maps.newLinkedHashMap();
    static {
        Arrays.stream(values()).forEach(obj -> {
            MAP.put(obj.getCode(), obj);
        });
    }

    /**
     * @param code
     *            数字码
     * @return DictAuthTypeEnum的枚举类
     * @Description 根据数字码得到枚举类的实例
     */
    public static TaskStatusEnum getDictAuthTypeEnum(int code) {
        return MAP.get(code);
    }

    /**
     * 数字码
     */
    private final int code;

    /**
     * 文本内容
     */
    private final String text;

    private TaskStatusEnum(int code, String text) {
        this.code = code;
        this.text = text;
    }

    /**
     * @return the code
     */
    public int getCode() {
        return code;
    }

    /**
     * @return the text
     */
    public String getText() {
        return text;
    }
}

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics