2

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

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

4

1 回答 1

5

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

于 2010-06-18T14:05:37.873 回答