- // TaskExecutor.java
- public
- final
- class
- TaskExecutor
- implements
- Executor
- {
- @Override
- public
- void
- killTask
- (final ExecutorDriver executorDriver, final Protos.TaskID taskID)
- {
- // 更新 Mesos 任务状态,已杀死。
- executorDriver.sendStatusUpdate(Protos.TaskStatus.newBuilder().setTaskId(taskID).setState(Protos.TaskState.TASK_KILLED).build());
- // 关闭该 Mesos 任务的调度
- DaemonTaskScheduler.shutdown(taskID);
- }
- }
- // DaemonTaskScheduler.java
- /**
- * 停止任务调度.
- *
- * @param taskID 任务主键
- */
- public
- static
- void
- shutdown
- (final Protos.TaskID taskID)
- {
- // 移除任务的 Quartz Scheduler
- Scheduler scheduler = RUNNING_SCHEDULERS.remove(taskID.getValue());
- // 关闭任务的 Quartz Scheduler
- if (null != scheduler) {
- try {
- scheduler.shutdown();
- } catch (final SchedulerException ex) {
- throw new JobSystemException(ex);
- }
- }
- }
来源: http://www.iocoder.cn/Elastic-Job/cloud-job-scheduler-and-executor-second?csdn&2017-11-10