执行器API设计

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 }

 

转载于:https://www.cnblogs.com/lay2017/p/11074606.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值