我该如何验证为使用 CronSequenceGenerator
准备的 cron
表达式?
我的意思是,如果我定义了类似每月间隔的计划任务,我不能等待直到 cron 自动执行。
以下表达式是否正确?我怎么确定?
monthly at midnight: `0 0 0 1 * *`
monthly at 1 am: `0 0 1 1 * *`
weekly, on sunday at midnight: `0 0 0 * * SUN`
Spring的CronSequenceGenerator类有一个方法isValidExpression(String expression),可以传入cron表达式并返回一个布尔值,用于判断该表达式是否合法。
实际上,我更喜欢直接使用"new CronSequenceGenerator(cronExpression)"
而不是静态方法isValidExpression
。
直接使用new会给你一个java.lang.IllegalArgumentExpression
,并告诉你问题出在哪里。
不幸的是,"isValidExpression"
会阻塞异常并简单地返回false。