UML
API接口
包
EventType
1 public interface EventType { 2 String TASK_FINISHED = "task_finished"; 3 }
Executor
1 public interface Executor { 2 /** 3 * 提交待执行任务 4 * @param task 任务 5 * @return 异步结果获取对象 6 */ 7 ResultFetcher submit(Task task); 8 }
ResultFetcher
1 public interface ResultFetcher { 2 /** 3 * 获取任务ID 4 * @return 任务ID 5 */ 6 String getTaskId(); 7 8 /** 9 * 同步等待抓取结果 10 * @return 任务结果 11 */ 12 TaskResult fetch(); 13 14 /** 15 * 异步监听任务结果 16 * @param listener 17 */ 18 void fetch(TaskEventListener listener); 19 20 /** 21 * 取消任务 22 * @return {@code true} 如果取消成功,{@code false}其它情况 23 */ 24 boolean cancel(); 25 }
Task
1 public interface Task<T> { 2 /** 3 * 任务执行 4 * @param params 任务执行所需参数 5 * @return 任务执行结果 6 */ 7 T execute(Object params); 8 9 /** 10 * 获取任务ID 11 * @return 任务ID 12 */ 13 String getTaskId(); 14 }
TaskEvent
1 public interface TaskEvent { 2 3 /** 4 * 获取事件类型 5 * @return 事件类型 6 */ 7 String getEventType(); 8 }
TaskEventListener
1 public interface TaskEventListener { 2 3 /** 4 * 触发事件监听 5 * @param event 事件 6 */ 7 void trigger(TaskEvent event); 8 9 /** 10 * 获取事件类型 11 * @return 事件类型 12 */ 13 String getEventType(); 14 }
TaskResult
1 public interface TaskResult { 2 /** 3 * 获取任务结果数据 4 * @return 任务结果对象 5 */ 6 Object getData(); 7 8 /** 9 * 任务状态 10 * @return 任务状态 11 */ 12 String getTaskStatus(); 13 14 /** 15 * 异常信息 16 * @return 任务异常信息 17 */ 18 String getExceptionMsg(); 19 }
TaskStatus
1 public interface TaskStatus { 2 String SUBMITTED = "submitted"; 3 String RUNNING = "running"; 4 String SUCCEED = "succeed"; 5 String FAILED = "failed"; 6 String CANCELED = "canceled"; 7 }