You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用cron-utils生成包含多个星期几的Quartz Cron表达式

解决cron-utils构建多值星期几Cron表达式的问题

嘿,刚好我熟悉cron-utils的用法,这就帮你搞定多个星期几的配置!

首先明确Quartz的星期几编码规则:1代表周日,2代表周一,以此类推,7代表周六,你例子里的1,3,7对应周日、周二、周六是完全正确的。

在cron-utils的CronBuilder中,withDoW()方法支持传入多个离散值,只需要给on()方法同时传入多个星期几的编码参数就行,不用单独写多个on()拼接。

修正后的完整代码如下:

CronDefinition definition = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ);
CronBuilder cronBuilder = CronBuilder.cron(definition)
    .withYear(always())
    .withMonth(always())
    .withDoM(questionMark())
    .withHour(on(0))
    .withMinute(on(0))
    .withSecond(on(0))
    .withDoW(on(1, 3, 7)); // 传入多个星期几的编码

// 生成最终的Cron表达式
String cronExpression = cronBuilder.buildAsString();
// 输出结果就是你需要的:0 0 0 ? * 1,3,7 *

简单解释下:

  • on(1, 3, 7)会直接转换成Cron表达式里的1,3,7部分
  • 因为你用的是Quartz类型的Cron定义,所以星期几的编码规则完全匹配你的需求

这样运行后就能生成你想要的多星期几的Cron表达式啦!

内容的提问来源于stack exchange,提问作者Leah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 12:57:44