繁体   English   中英

Google应用程序引擎python cron:app.yaml文件中的testcron.py在做什么?

[英]Google app engine python cron: What is the testcron.py doing in the app.yaml file?

这是gae python cron作业的示例代码。

app.yaml

- url: /testcron
  script: testcron.py
  login: admin

- url: .*
  script: main.app

cron.yaml

cron:
- description: testcron
  url: /testcron
  schedule: every 12 hours

main.py

class MainHandler(webapp2.RequestHandler):
    def get(self):
        self.request.write('hello')

class TestCronHandler(webapp2.RequestHandler):
    def get(self):
        logging.info('hello')


app = webapp2.WSGIApplication([
    ('/', MainHandler),
    ('/testcron',TestCronHandler)
], debug=True)

好的,所以我注意到您不需要script: testcron.py app.yaml文件中的script: testcron.py 但是,如果将其放在此处,则需要运行另一个应用程序。

那目的是什么? 我的意思是您可以在TestCronHandler中运行它。 在main.app处理程序中运行与在testcron.py中运行之间有什么区别? (似乎您需要使用testcron.py运行另一个应用程序)

你的意思不是很清楚

如果放在那里,则需要运行另一个应用程序

似乎您需要使用testcron.py运行另一个应用程序

如果你的意思是你需要定义的另一个app = webapp2.WSGIApplicationtaskcron.py然后是的,这是事实,但它看起来像你没有testcron.py在所有的文件和你的main.py正在处理的请求/testcron因此您的app.yaml看起来可能很简单:

- url: .*
  script: main.app

是否要(为了更好的代码组织?)将cron请求/处理程序分离到一个单独的文件中,取决于您,但是请注意,如果您有一个名为taskcron的文件。 PY那就需要在出现app.yaml为“脚本:taskcron 应用 ”。

此外,一个重要的安全注意事项,如果你想确保普通用户无法访问您的cron任务网址,那么你一定要你的cron任务的处理程序移动到一个单独的文件,并保持login: admin下面一行script: testcron.appapp.yaml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM