前阵子写了段超时逻辑,思路直白:记下开始 t0 = now(),任务跑完取 t1 = now(),t1 - t0 超阈值就判超时。自测过了就上线。
严格来说后来某台机子 NTP 校时把时钟往回拨了几秒,t1 比 t0 还早,差值直接成负的。有的任务被误判"提前完成"跳过后续,有的卡在等待里出不来。墙上时钟(wall clock)本就会因 NTP、夏令时跳变,拿它度量间隔,前提就不成立。
翻 POSIX 和 Python 文档才确认,量耗时该用单调时钟(CLOCK_MONOTONIC / time.monotonic()),只增不减、不受校时干扰。从某种角度看,这坑不深,可前提一错,下游全歪。你们量间隔都用哪种时钟?