经过几天的搜索并四处寻找,我无法找到正确的答案。
我试图在Google App Engine(使用Python)上运行cron作业。 cron作业本身并不重要,我只想每分钟运行一个python脚本。现在我只想在一个单独的文本文件(test.txt)中添加一行当前时间。
我很确定我不太了解处理程序的概念,这是导致我出现问题的原因。但我在文档中花了好几个小时,我仍然无法弄明白。
我觉得我不应该使用main.py作为cron作业的脚本,但是我很难理解cron.yaml中的url需要什么,以及处理程序/脚本应该是什么。< / p>
请帮忙!
的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
答案 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
的网址处理程序。试试这个:
:
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视图。它永远不会那么远。