在模块教程 KernelSU 解决方案中,我们讨论了关于位置、说明、复现、期望和备注等方面的问题。首先,位置是在文件 backend/src/schedules.rs 中的 ScheduleService::run 方法。注释称队列满时“重试同一个槽位”,但实际实现是直接改写 next_run_at。这导致槽位时间 due 被替换为 now + BUSY_RETRY_MS,并且 following() 之后以新值为起点,原网格被平移,request_key(含 due)随之变化,不再是同一个槽位。复现的情况是首次在 10:00,每 60 分钟。10:00 遇到队列满时,实际上会在 10:01 才执行,导致后续的执行时间变为 11:01、12:01 等等。期望的情况是网格应保持 10:00、11:00、12:00,仅当次延后。备注中提到,Busy 分支没有测试覆盖,因此在修复时建议一并补上。
本博客所有文章除特别声明外,均采用
CC BY-NC-SA 4.0
许可协议。转载请注明来自KernelSU分享库 !
评论已关闭