AppEngine延迟库中的PermanentTaskFailure

时间:2010-03-23 17:37:00

标签: django google-app-engine scheduled-tasks

我正在使用App Engine和延迟库。但偶尔我的任务会因以下错误而失败:

Permanent failure attempting to execute task
Traceback (most recent call last):
  File "/base/python_lib/versions/1/google/appengine/ext/deferred/deferred.py", 
    line 256, in post
      run(self.request.body)
  File "/base/python_lib/versions/1/google/appengine/ext/deferred/deferred.py", 
    line 122, in run
      raise PermanentTaskFailure(e)
PermanentTaskFailure: Environment variable DJANGO_SETTINGS_MODULE is undefined.

我发现post说解决方案是:

from google.appengine.ext.webapp import template 

但我没有使用webapp框架,我正在使用Django。我该怎么办?

1 个答案:

答案 0 :(得分:4)

这样的错误通常发生在您的任务依赖于某些Python路径操作或其他jiggery-pokery时,当第一个对运行时的请求是通过延迟时未执行的。您需要确保所有入口点 - 例如包含您要推迟的功能的模块 - 导入一个执行相关路径操作的模块。

或者,您可以编写自己的延迟任务处理程序,作为框架的一部分,它将已经应用了相关的修补程序。为此,只需注册处理程序并让它调用deferred.run(),传入请求的完整主体。