这是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运行另一个应用程序)
答案 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
内。