2010-06-18 52 views
2

在我的本地开发环境中,当添加到任务队列的App Engine任务遇到错误时,将重试它,直到成功为止。但是,在生产环境中,事实并非如此。我认为正在发生的是,因为我在urls.py中有一个自定义的500处理程序,所有的错误都会被这个错误所捕获,并且这个500错误永远不会冒泡到顶部。未引发错误的App引擎任务

难道这实际上是我的任务没有被重试的原因吗?如果是这样,有没有办法来防止这种情况?如果请求是用户生成的,而不是后端任务(对于那些,我希望错误冒泡并强制重试),我只想让handler500捕获错误。

回答

5

如果任务返回非200状态码,任务将被任务队列重试。如果您的“自定义500处理程序”返回200状态代码,则任务队列无法知道任务失败,因此不会重试该任务。您需要修改您的处理程序以返回相应的状态代码 - 不管它应该如何操作,包括用户页面。