1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| import lombok.extern.slf4j.Slf4j;
import java.util.Map; import java.util.concurrent.ConcurrentHashMap;
@Slf4j public class JobManager {
private static final Map<Long, ShellJob> JOB_MAP = new ConcurrentHashMap<>();
public static boolean addJob(ShellJob job) { if (JOB_MAP.containsKey(job.getJobId())) { log.warn("添加Job失败, Job已经存在, Job标识:{}", job.getJobId()); return false; } log.info("添加Job成功, Job标识:{}", job.getJobId()); JOB_MAP.put(job.getJobId(), job); return true; }
public static void removeJob(Long jobId) { if (!JOB_MAP.containsKey(jobId)) { log.warn("删除Job失败, Job不存在, Job标识:{}", jobId); return; } log.info("删除Job成功, Job标识:{}", jobId); JOB_MAP.remove(jobId); }
public static boolean killJob(Long jobId) { log.info("开始终止Job, Job标识:{}", jobId); if (JOB_MAP.containsKey(jobId)) { JOB_MAP.get(jobId).stop(); log.info("终止Job成功, Job标识:{}", jobId); return true; } log.info("终止Job失败, Job不存在, Job标识:{}", jobId); return false; }
public static void stopAll() { for (Map.Entry<Long, ShellJob> entry : JOB_MAP.entrySet()) { entry.getValue().stop(); } }
}
|