AzurLaneAutoScript icon indicating copy to clipboard operation
AzurLaneAutoScript copied to clipboard

希望调度器添加一个预约空闲时间的功能,同时根据目前规则超控预约时间之前的技能学习和委托选取

Open NJUsunset opened this issue 1 year ago • 0 comments

你的功能请求是否与问题有关?

平日每天固定一段时间有空闲上号处理活动以及仓库合成等需要手操的工作,希望能在合适位置增加一个预约调度器空闲时间段的功能。该功能也应同样适用于处理服务器更新时间,以及可能的运行环境变更等情况所需的离线时间。

解决方案

添加预约时间段后,在调度器被挤占的任务中:

  • 主线图、活动图、大世界开荒等非当日需求任务应当实现自动推后;
  • 每日任务、每日活动、商店购买等当日需完成的任务应当根据时间段合理调整至所求空闲时间段前后,以确保能够在当日完成这些任务(同理当周任务应当确保在当周内完成以避免损失);
  • 战术学院、委托以及科研这类连续运转的任务应根据所预约的空闲时段的时长对空闲时间段触发之前的一次或几次任务重排选取优先级,以最大化覆盖空闲时间段。

重排优先级这一功能目前想到的可能方法为以当前的优先度从前至后选取第一个满足时间要求的项目。科研由于具有队列功能本身就有一定的缓冲长时间离线的效果,但是科研任务似乎并不会在每次运行时自动检测并补满队列,仅会自动添加一个队列项目(这一点我不确定是偶发bug还是程序设计问题)。另外委托部分也需求记录限时的委托中高价值项目的消失时间并与空闲时间段比较,合理避免错过这类项目。

考虑到增加空闲时间段的目的以及处理连续运转的任务安排的合理性,预约时长可以限制为最长8~12小时。显然,超过6小时的空闲时长不可避免地会出现连续运转的任务停摆的情况。针对此类情况,建议可以在优先级列表中添加一个标记点,在重排时仅对标记点以前的项目进行按时间顺序选取,以平衡时间效率和项目价值的冲突。

其他内容

No response

NJUsunset avatar Feb 06 '24 05:02 NJUsunset