为什么你的 Node.js 应用里 setTimeout 不准确?从事件循环到定时器实现
线上有个 Node.js 服务需要每隔 100ms 采集一次设备状态,代码里用 setInterval 写的,实际跑起来间隔有时候会跳到 300ms 甚至更久,导致采样点稀疏、后续做趋势分析时数据失真。排查后发现不是定时器坏了,而是回调里做了同步的 JSON 序列化和写文件操作,阻塞了事件循环,定时器回调只能排队等。这类问题在日志聚合、指标上报、定时任务调度里很常见:开发者默认 setTimeout/setInterval 是精确的,但 Node.js 的定时器只保证“不早于”设定时...