错误时不会重新尝试App Engine任务

rya*_*yan 2 google-app-engine task task-queue

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

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

Nic*_*son 5

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