昆山吧 关注:913,712贴子:14,963,567
  • 0回复贴,共1页

【经验】Docker容器时区不一致定时任务错点

只看楼主收藏回复

“定时任务总在错的点跑,原来容器时区和宿主机不一致。”
昆山吧里聊到,朋友 Docker 容器时区与宿主机不一致,定时任务错点。他以为是 NTP,其实是容器内 TZ 没对齐。这和 NTP 未同步、CMOS 电池回拨、证书过期、只绑本地回环不是一类事,这次只盯统一 TZ 验收。
图:RobH / Wikimedia Commons / CC BY-SA 3.0
朋友问:“是不是改 cron 表达式?”我说先统一 TZ,再验收。
第一,统一 TZ。容器与宿主机设同一时区,禁止一个用 UTC、一个用本地。
第二,启动打印。服务起来后打印容器内当前时区与本地时间,对不上就不放行。
图:RobH / Wikimedia Commons / CC BY-SA 3.0
第三,定时验收。故意拨错容器时区,任务必须在错点复现并被拦住;对齐后再跑。
验收把六次错时区重放。改前有三次任务错点,改后六次对齐后全在正确点。朋友把 TZ 写进部署说明,换人也能对表。
图:RobH / Wikimedia Commons / CC BY-SA 3.0
容器时区看起来只是环境变量,不一致就会让定时任务错点。统一 TZ 再验收,比口头说好像好了靠谱。
你们本地容器有没有遇到过时区不一致导致定时错点?最后怎么固定的?欢迎讨论。
把检查写成固定步骤,比出了事再猜省力,换人值班也能按同一套标准走。
回头复盘,这类问题往往不是某一句提示词写错,而是入库、汇总、状态这些前置步骤少做了检查。
同事后来把这套步骤写进共享盘说明,新人接手也能按同样清单走一遍。
我把这次踩坑记进团队备忘,下次换环境先过一遍同样的三处改动。
验收数字摆在桌面上,比口头说好像好了更让人放心。
这类细节平时不起眼,真出了偏差排查却最费时间。
我们约定以后每次改完都留一份对照记录,方便下一次复盘。
流程写清楚之后,值班交接少了很多口头解释。
有了清单,新人也能按同样标准走完,不必每次找人问。
下次再碰到类似现象,先对清单再动手,比凭感觉改快。
值班交接时把三处改动念一遍,比事后补救省大半天。
同一套对照数字留在共享盘,下一次排查能直接对齐。
交接时把验收数字念一遍,比口头说好像好了更踏实。
我们把三处改动写进值班备忘,换班也能按同一套走。
出了偏差先对清单,再决定要不要动配置。
对照记录留在共享盘,下一次排查能直接对齐基线。
清单放在显眼处,值班的人一眼就能对上。
数字对上了,才敢说这轮验收过关。
同样的三处改动,换环境也先过一遍。


IP属地:中国香港1楼2026-10-26 11:49回复