我有一个用 Java 编写的报告创建程序,需要每周一运行,我使用 Quartz 作为我的调度部分。诀窍是,需要生成的报告数量各不相同;取决于星期一是每月的第一天,还是接下来的星期一。
为了实现这一点,我所做的是为每月的每个星期一创建一个触发器,第一个星期一指向特定的工作类别,而其余的星期一(触发器)指向另一个工作类别。
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0 1 0 ? 1/1 MON#1 *"))
.build();
.withIdentity("trigger2", "group1")
.withSchedule(cronSchedule("0 1 0 ? 1/1 MON#2 *"))
.build();
依此类推,直到我到达
.withIdentity("trigger5", "group1")
.withSchedule(cronSchedule("0 1 0 ? 1/1 MON#5 *"))
.build();
它达到了 MON#5,因为一个月可能有 5 个星期一;就像这个十月一样。这很好,它有效(我认为),但我的问题是这个。有没有办法结合我的 cron 计划,这样我在接下来的星期一只需要一个触发器?就像是;
.withSchedule(cronSchedule("0 1 0 ? 1/1 MON#2,MON#3,MON#4,MON#5 *"))
如果有,请不吝赐教。如果我只是在我的编程中遗漏了一些东西,或者如果迷宫中存在一个未知页面,它是引导我了解真相的网络,那么请指出我正确的方向。
非常感谢您的客气话。谢谢
ps:我包含了一个 cron 标签,尽管它说它是用于 UNIX 计算机的。我相信 Quartz cron 和 Unix cron 之间几乎没有区别。如果有,请告诉我。