【问题标题】:app engine cron jobs not running in production应用程序引擎 cron 作业未在生产中运行
【发布时间】:2011-07-10 00:11:20
【问题描述】:

我刚刚将我的应用程序上传到应用程序引擎,除了 cron 作业没有运行之外,一切似乎都正常工作。我的根目录中有一个 cron.yaml 文件,基本上是:

cron:
- description: do stuff
  url: /cron/dostuff
  schedule: every 1 minutes

- description: do other stuff
  url: /cron/dootherstuff
  schedule: every 1 days

这映射到我的 app.yaml 文件的以下部分:

- url: /cron
  script: main.py
  login: admin

它映射到我在 main.py 中的应用程序,它说:

# cron
('/cron/(.*)',handlers.CronHandler),

最终像这样映射到 CronHandler 程序:

class CronHandler(BaseHandler):
    def get(self, mode=""):
        if mode == "dostuff":
            # stuff should happen here

我已将应用程序上传到谷歌,其他一切似乎都正常工作。当我直接点击 cron URL(即 myapp.appspot.com/cron/dostuff)时,它可以正常工作。但是 cron 作业不会自行运行,当我进入仪表板并查看 Cron 作业页面时,我看到了这一点。

知道我做错了什么吗?

【问题讨论】:

  • 其他条目不需要点星号,所以我认为这无关紧要,但我还是试了一下。没有骰子。我同意,我希望它至少能显示一些失败的 cron 作业。
  • 我尝试过的其他变体是将 cron.yaml 中的频率调整为“计划:每分钟”和“计划:每天”。那也没用。
  • .* 是必需的——但我认为你有一个包罗万象的规则,它也指向 main.py。这样做的结果是您的 cron 处理程序不是管理员专用的。

标签: python google-app-engine yaml


【解决方案1】:

想通了。没有指定时间的“天”本身不是有效的时间表。我需要将其更改为“每 24 小时”或“每天 00:00”。如果 cron.yaml 上的文档对选项更清楚一点,那就太好了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-18
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    相关资源
    最近更新 更多