为了账号安全,请及时绑定邮箱和手机立即绑定

AbstractTask

标签:
Java
AbstractTask
package com.huihe.exam.task;

import com.huihe.exam.util.Tools;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.support.CronTrigger;

public abstract class AbstractTask implements Runnable {

    private SchedulerTask task;
    private final Logger log = LoggerFactory.getLogger(AbstractTask.class);

    public static final String TASK_SUCCESS = "2";
    public static final String TASK_ERROR = "3";
    public static final String TASK_DOING = "1";
    public static final String TASK_WAITING = "0";

    public AbstractTask (){
        super();
    }

    @Override
    public void run() {
        log.info("父类run方法");
    }

    public abstract void success();

    public abstract void error();

    public abstract void doing();

    public void stop(){
        String taskId = task.getId();
        if(TaskAdmin.scheduledFutureMap.containsKey(taskId)){
            TaskAdmin.scheduledFutureMap.get(taskId).cancel(true);
            TaskAdmin.scheduledFutureMap.remove(taskId);
            log.info("移除任务【{}:{}】,当前任务池长度:{}", task.getTaskName(), taskId, TaskAdmin.scheduledFutureMap.size());
        }
    }

    public SchedulerTask getTask() {
        return task;
    }

    public void setTask(SchedulerTask task) {
        this.task = task;
    }

    public Trigger getTrigger(){
        return new CronTrigger(Tools.getCron(this.task.getStartTime()));
    }
}


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消