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

时间:2015-02-05 07:35:16

标签: python google-app-engine cron

这是gae python cron job的示例代码。

的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)

好的,所以我注意到你在app.yaml文件中不需要script: testcron.py。但如果你把它放在那里,则需要运行另一个应用程序。

那么目的是什么?我的意思是你可以在TestCronHandler中运行它。 在main.app处理程序中运行和在testcron.py中运行有什么区别? (看起来你需要用testcron.py运行另一个应用程序)

1 个答案:

答案 0 :(得分:2)

,你的意思并不清楚
  

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

  

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

如果您的意思是需要在app = webapp2.WSGIApplication内定义另一个taskcron.py,那么是的,这是真的,但看起来您根本没有testcron.py文件main.py正在处理对/testcron的请求,因此您的app.yaml可能看起来很简单:

- url: .*
  script: main.app

您是否想要将(用于更好的代码组织?)cron请求/处理程序分离到单独的文件中,但请注意,如果您有一个名为taskcron的文件。 py 它需要显示在app.yaml as"脚本:taskcron。 app "。

另外,一个重要的安全说明,如果您想确保普通用户无法访问您的cron任务网址,那么您一定要将您的cron任务处理程序移动到一个单独的文件中,并将login: admin行保留在script: testcron.app下面{{ 1}}在app.yaml内。

相关问题