无法在Google App Engine(Python)上运行Cron Job

时间:2017-07-12 17:13:10

标签: python google-app-engine cron

经过几天的搜索并四处寻找,我无法找到正确的答案。

我试图在Google App Engine(使用Python)上运行cron作业。 cron作业本身并不重要,我只想每分钟运行一个python脚本。现在我只想在一个单独的文本文件(test.txt)中添加一行当前时间。

我很确定我不太了解处理程序的概念,这是导致我出现问题的原因。但我在文档中花了好几个小时,我仍然无法弄明白。

我觉得我不应该使用main.py作为cron作业的脚本,但是我很难理解cron.yaml中的url需要什么,以及处理程序/脚本应该是什么。< / p>

请帮忙!

Here's a list of my files.

的app.yaml

http

cron.yaml

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app

runtime_config:
  python_version: 3

handlers:
- url: /main
  script: main.py

main.py

cron:
- description : most recent test
  url : /main
  schedule: every 1 minutes

2 个答案:

答案 0 :(得分:1)

您的cron.yaml文件正在将标准环境Handlers元素混合到flexible environment配置中,因此可能会被忽略。

您的/main配置显示了您的cron作业的/网址,但您的应用似乎没有这种网址路径的路由,它似乎只能处理404路径。我希望您在/main cron请求的日志中看到一些/main错误。

您应在main.py中为/main路径添加路线。或者使用/中的cron.yaml替换return

附注:hello()内部有一些不可执行的代码(跟随<{strong> test.txt语句) - 以防万一您正在寻找{{1}文件...

答案 1 :(得分:1)

您没有/main的网址处理程序。试试这个:

app.yaml中的

handlers:
- url: /.*      # wildcard.  every url goes there
  script: main.py
在main.py中

from flask import Response

@app.route('/main')
def main():
    """Return a friendly HTTP greeting."""
    Response("Hello main viewer", mimetype='text/plain')

注意:代码中的另一个错误是在脚本有机会编写.txt文件之前返回html视图。它永远不会那么远。