Skip to content

设计一个基本的任务队列MongoAnalyzorTaskMgr #30

@AceBear

Description

@AceBear

MongoAnalyzorTaskMgr

MongoAnalyzorTaskMgr 是一个任务队列,它有以下功能

  • 内部维护1个队列,等待执行的任务
  • 内部维护一个变量,当前正在执行的任务,所以这是一个只能一个个顺序执行任务的
  • 接受外部参数,创建一个新的任务,并放入等待执行队列中
  • 执行逻辑:如果当前没有正在执行的任务,则从等待队列中调度一个,成为正在执行状态
  • 可以查询过去创建的任务状态,可能的状态有:待执行,正在执行,执行完成并成功,执行完成但失败

任务

  • 当前仅实现一个“内部调试任务”
    以后会添加更多的任务类型,用于真实的数据分析

内部调试任务

  • 需要花5分钟执行完成,可以查询执行进度,比如已经执行了3分钟(不是等待了3分钟),那么进度就是60%
  • 没有实际的业务逻辑
  • 随机80%执行成功,20%执行失败,随便生成一条失败信息

设计要求

  • 注意是设计而不是自己去编码实现
  • 分解成一个个的classes或class中的methods
  • 以java代码形式提交class的占位文件,仅写public class SomeClassYourDesigned{ } 即可
  • 在issue描述这些class要怎么去实现
  • 一个issue的大约控制在4小时以内完成,可以更少
  • 如果一个class要实现的功能太复杂,可以拆成更多的小classes或者拆出更多的的methods,可以填充一些具体的粘合代码逻辑
  • 如果觉得有必要,可以规定参数/返回值的名称和类型,也是直接在代码里写占位方法public void SomeMethodYourDeisgn(int arg1, float arg2)
  • 如果这些issue被完成,那么上面提到的这些功能就会真的完成了

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions