Categorias: Todos - 时间 - 任务

por 旭 王 14 anos atrás

482

秘书领任务

在处理秘书领取任务时,需要考虑任务的开始和结束时间。秘书的空闲时间并不是决定任务分配的关键因素,因此在返回任务时,应将任务按照组内和组外的时间来进行排序。如果组内任务的时间较短,则优先返回组内任务;如果组外任务时间较短,则应同时返回组内和组外任务。秘书在领取任务时,有任务和无任务的状态也会影响任务的分配策略。任务的时长和秘书的空闲时间也需进行比较,以确定在秘书空闲时间内能够完成的任务。

秘书领任务

秘书领任务

考虑返回任务为空的判断

即DeadLine=DateTime.MinValue

返回任务的几种情况

最初想法错了,后面的分析也就错了。

在处理返回任务的时候不应该考虑秘书的空闲时间,只考虑返回哪个任务就好了。

所以将返回结果变为数组,如果组内任务时间短直接返回,如果组外任务时间短将组内组外任务一起返回。

之所以如果是因为秘书的空闲时间可能

组外任务时间<秘书时间<组内任务时间。

组外任务
组内任务>组外任务

返回两个

都大于60
都小于60
组内大于60,组外小于60
组内任务<=组外任务

直接返回

两个任务
组内任务
大于组外时间

一小时外

一小时内

大于空闲时间

小于空闲时间

小于组外时间

秘书时间30分

组外任务20
组内任务40

领取顺序

有结束时间的任务直接查询

有开始时间的任务查询已经开始的并且开始时间+时长得出的结束时间

4非本组一小时外的Top1
3本组一小时外的Top1
2非本组一小时内的Top1
1本组一小时内的Top1

思路

领取任务
无符合任务
成功
查询秘书 空闲时间
查询秘书 秘书组

秘书状态

有任务
有结束时间的任务

可以领取任务相对开始时间前能完成的任务

有开始时间的任务

可能领取不开始时间能够完成的任务

无任务
直接领取