Google app engine Google应用程序引擎:Cron调用Cron处理程序,但不运行任何代码
我有以下问题。我已经在Google App Engine中定义了一个cron作业,但是我的get方法没有被调用(或者准确地说,它每隔一次被调用一次——如果我手动运行它,它在第一次时不会做任何事情,但在第二次时它可以完美地工作)。这是cron调用日志记录的输出:Google app engine Google应用程序引擎:Cron调用Cron处理程序,但不运行任何代码,google-app-engine,cron,handler,Google App Engine,Cron,Handler,我有以下问题。我已经在Google App Engine中定义了一个cron作业,但是我的get方法没有被调用(或者准确地说,它每隔一次被调用一次——如果我手动运行它,它在第一次时不会做任何事情,但在第二次时它可以完美地工作)。这是cron调用日志记录的输出: 2011-07-04 11:39:08.500 /suggestions/ 200 489ms 70cpu_ms 0kb AppEngine-Google; (+http://code.google.com/appengine) 0.1.
2011-07-04 11:39:08.500 /suggestions/ 200 489ms 70cpu_ms 0kb AppEngine-Google; (+http://code.google.com/appengine)
0.1.0.1 - - [04/Jul/2011:11:39:08 -0700] "GET /suggestions/ HTTP/1.1" 200 0 - "AppEngine-Google; (+http://code.google.com/appengine)" "bazinga-match.appspot.com" ms=489 cpu_ms=70 api_cpu_ms=0 cpm_usd=0.001975 queue_name=__cron task_name=a449e27ff383de24ff8fc5d5f05f2aae
正如您所看到的,它对/suggestions/
发出GET
请求,但什么也没有发生,包括我的日志消息(当我第二次手动运行它时,它们被打印出来)。你知道为什么会这样吗
我的经纪人:
class SuggestionsHandler(RequestHandler):
def get(self):
logging.debug('Creating suggestions')
for key in db.Query(User, keys_only=True).order('last_suggestion'):
make_suggestion(key)
logging.debug('Done creating suggestions')
print
print('Done creating suggestions')
这是我的cron.yaml:
cron:
- description: daily suggestion creation
url: /suggestions/
schedule: every 6 hours
以及my app.yaml的适当部分:
- url: /suggestions/
script: cron.py
login: admin
处理程序文件底部的
main
之后缺少此声明:
if __name__ == '__main__':
main()
第一次运行处理程序脚本时,AppEngine只需导入它,并且此代码段在这种情况下运行main。在随后的请求中,如果您定义了一个函数,应用程序引擎将运行
main
函数。Wow!这是非常出乎意料的。非常感谢,很高兴在StackOverflow上得到Google开发者的直接支持。我将在今晚的项目中尝试解决此问题;-)