如何编写跨越多个小时且任意开始分钟的 cron 表达式

问题描述 投票:0回答:2

我想为上午 10:45 到上午 11:30 的每一分钟编写一个 cron 表达式。有没有办法写出这样的表达式。我知道如果我将开始分钟设置为 45,它不会在 11-11:30 安排任何内容

cron scheduled-tasks
2个回答
0
投票

不。您需要将其分成两个 cron 作业。 45-59 10 * * *0-30 11 * * *


0
投票

cron 表达式是一个定义执行任务的时间表的字符串。如果您想要一个跨越多个小时但在任意分钟开始的计划,您可以通过仔细配置 cron 表达式的字段来实现。

语法回顾:

Cron 表达式遵循以下格式:

分钟:0-59

小时:0-23

月份中的某天:1-31

月份:1-12

day_of_week:0-7(其中0和7都代表星期日)

问题:跨多个小时的任意开始分钟

要每小时运行一项任务,从任意分钟(例如,整点后 15 分钟)开始跨多个小时(例如,上午 10 点到下午 4 点),解决方案需要指定分钟和小时范围。

示例 1:上午 10 点到下午 4 点之间每小时 15 点运行

cron 表达式:

15 10-16 * * *

分钟:15 — 从整点 15 分钟开始。

小时:10-16 — 从上午 10 点到下午 4 点。

其他字段 (*) 设置为其默认值,这意味着作业每天、每月和每周运行。

示例 2:上午 8 点到下午 6 点之间每小时 :45 运行一次

cron 表达式:

45 8-18 * * *

分钟:45 — 从整点 45 分钟开始。

时间:8 点至 18 点 — 从上午 8 点到下午 6 点。

其他字段不变。

补充说明

  1. 多个任意分钟:如果您想要多个特定分钟(例如,整点 15 点和 45 点):

15,45 10-16 * * *

  1. 每 X 分钟:如果您希望任务在多个小时内每 30 分钟重复一次(例如,从 :10 开始,每 30 分钟继续一次):

10/30 10-16 * * *

  1. 高级调度:使用 crontab.guru 等工具来验证您的 cron 表达式。
© www.soinside.com 2019 - 2024. All rights reserved.