使用App Engine的cron API每小时运行一个任务

时间:2009-10-01 04:36:28

标签: python google-app-engine cron

我需要在每周的每一小时(00:00,01:00,02:00,...,23:00)每小时运行一个任务,但似乎无法找到一个例子在App Engine的文档中如何执行此操作。

有一个每小时运行询问的示例,但这不合适,因为该小时的“开始”取决于您部署应用程序的时间。也就是说,如果我在下午4:37部署,cron脚本将在5:37,6:37执行,而不是5:00,6:00,...

到目前为止,看起来它的唯一方法是拥有24个不同的cron条目,一个用于每天在特定时间运行的特定小时。

有没有人知道任何可以让我使用“每小时在00:00”甚至“每天00:00,0:00,...... 23:00”的时间表?

4 个答案:

答案 0 :(得分:5)

你可以做到这一点,并准确地放弃一小时,但它会很接近......

(示例来自我正在调试的应用程序)

cron:
- description: Description of what you want done...
  url: /script/path/goes/here
  schedule: every 60 minutes synchronized
  timezone: America/New_York

下面是日志的截图,该应用现在没有流量, 这些条目中有99%都是cron条目。

enter image description here

--- 编辑 ---

只需重新阅读文档,也许这可能会更好,

  schedule: every 60 minutes from 00:00 to 23:59

答案 1 :(得分:4)

不幸的是,cron语法不允许您指定小于一天的时间间隔。但是,您可以使用Task Queue来执行此操作。之一:

  1. 有一个任务队列条目,当它运行时,将一个新的任务排队,并将'倒计时'设置为下次要运行的秒数。
  2. 每天都有一个cron作业,每次要运行24小时的任务队列条目。

答案 2 :(得分:1)

文档说你可以有20个cron条目,所以你不可能每天都有一个。

你可以每分钟运行一次任务并检查它是否是一小时的第一分钟 - 否则退出。

答案 3 :(得分:-1)

查看文档,我同意您的24 cron入口理念是唯一可行的文档化方法。不理想,但应该有效。