[题型设计]复杂任务调度设计
最近想优化一下业务代码之中的任务调度模块, 我把整体需求理了理, 准备重头开始设计一下.
请听需求:
在业务系统里面, 任务提交是一个非常常见的场景, 下面是我提炼的业务系统任务的几个特点:
- 任务运行时间较长, 可能会超过一个小时, 肯定会有不同的状态
- 任务会有不同类型, 每个类型之间会有一定关联, 但是差别也很多
- 一个任务可能会有多个子任务: 子任务是不可再分的
- 每个子任务或者任务都可能会失败, 需要进行任务重试, 重试要遵循幂等设计
- 子任务会连接其他系统, 中间有可能会有超时异常, 要防止任务堆积
- 这里假设任务提交速率不高, 可以单机处理
问题如下, 请用伪代码描述:
- 设计一个框架来实现该功能, 详细描述里面用到的设计模式
- 如果提交速率提高到100个请求/s, 需要分布式化, 请问如何设计