Skip to content

Latest commit

 

History

History
26 lines (20 loc) · 1.6 KB

design.md

File metadata and controls

26 lines (20 loc) · 1.6 KB

这是最初的版本:

  1. 设定最大的任务并行数
  2. 每当任务完成后,马上加入下一个任务,以维持最大并行任务数
  3. 支持查询请求进度
  4. 支持任务失败后恢复执行

但同时设计存在一些缺陷:

  • 一旦任务启动之后,不支持添加任务
  • 不支持链式调用
  • 无法动态调整并行数
  • 内存管理,缺乏队列数量的管控以及失败执行的次数
  • 不能管理任务队列,只能管理单独的任务

(比如同时做两个大文件并行上传的时候,目前只能把文件都拆分成单独的任务放到队列中,但这样的结果只能是文件一上传完了,才会上传文件二。 假设我们希望能让两个大文件同时并行上传,这就犯了难了)

2020.03.14 更新: 实际上同时上传两个大文件,不好控制的地方还是在于并发的请求数。 浏览器最多同时发送 6 个请求的第一个上传大文件每次占用 6 个请求。此时现在又上传一个大文件,如果要支持两个大文件同时上传,那就需要将之前的并发请求数设置为 3 个,使得另外一个大文件也能上传。 但这样,并不能从本质上改善文件传输的速度,只是把请求资源分配给了另外一个大文件。所以暂时不考虑这种情况。针对这种同时上传多个大文件的场景,还是采用队列的的顺序,优先传输完第一个大文件,再进行下一个大文件传输。

同时待思考的点有:

  1. 是否支持插队执行?
  2. 是否需要提供更详尽的查询方案以便用户特定执行或查询任务