场景是这样的,在服务里利用 sprint boot
的@Scheduled(cron = "${xx.run.schedule}")
定义了一个定时服务,xx.run.schedule
变量在一个配置文件中,服务正在运行中,现在临时想停用几天,想到的方案是修改一下变量,让他暂时不会运行,当然可以设置成几个月后执行,然后过几天再改回来,但是突然冒出一个想法,有没有永远不会执行的 cron 表达式,一搜索,还真有。
利用 2 月没有 31 号这一个漏洞,将执行时间设置在 2 月 31 号,则这个定时任务永远不会执行。0 0 5 31 2 ?
来源
利用同样的原理可以找出非常多的日期,让定时任务不能执行。