在App Engine上为特定日期每小时执行的cron任务调度

3 投票
1 回答
3243 浏览
提问于 2025-04-16 03:59

我想设置一个定时任务,让它每小时运行一次,但只在星期四到星期一之间。这样安排可以吗?根据文档,我看到可以设置定时任务每小时运行一次或者在特定的日子里某个特定的时间运行,但我搞不清楚怎么才能让定时任务在特定的日子里每小时运行一次。

我在cron.yaml文件中尝试过以下几种安排:

  • 每1小时 thu,fri,sat,sun,mon
  • 每1小时的 thu,fri,sat,sun,mon

根据我对文档的理解,我觉得这可能是不可能的。我希望我要么是漏掉了什么,要么是有一些没有记录的语法可以实现我想要的功能。

1 个回答

2

正如你在cronjobs的文档中看到的,源代码也表明,间隔调度格式并不允许你限制任务在特定的星期几执行。

虽然你不能用一个cronjob来安排你的任务,但你可以用多个cronjob来实现:

every thu,fri,sat,sun,mon 00:00
every thu,fri,sat,sun,mon 01:00
...
every thu,fri,sat,sun,mon 23:00

另外,leoluk的评论提供了一个不错的建议——你可以使用一个简单的间隔调度,每小时调用一次你的脚本,但如果当天是你想排除的星期几(比如星期二或星期三),那么脚本就可以直接结束,不执行任何操作。

撰写回答