在制造行业的运维工单排行榜上,”定时任务不执行”常年霸榜——不是因为它难,是因为它平时的正确性完全不可见:任务跑了没动静,不跑也没动静,直到某天运营发现预警没发、报表没出、库存没归档,倒回来查的时候现场早凉了。
教科书答案是 @Scheduled 一行注解。但真实系统用不了它——改一次执行周期要发版、启停一个任务要重启、运营和实施人员完全无法自助、多实例部署还重复跑。这套 MES 的定时任务体系就是为了解决这四件事搭建的:任务存数据库、页面全治理、变更即时生效、集群防重。本篇拆它的两条加载路径(一个真实的生产事故就栽在它们身上)、三层防重设计,以及那张沉淀了三轮排查弯路的排查清单。上一篇总线篇讲的系统事件通道,本篇正好是它最重要的消费者。