代码之家  ›  专栏  ›  技术社区  ›  noio

AppEngine延迟库中的PermanentTaskFailure

  •  3
  • noio  · 技术社区  · 14 年前

    我正在使用应用引擎和延迟库。但偶尔我的任务会失败,并出现以下错误:

    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 回复  |  直到 14 年前
        1
  •  4
  •   Nick Johnson David Cournapeau    14 年前

    当您的任务依赖于一些Python路径操作或其他不在执行的JiggeryPokery时(当对运行时的第一个请求通过延迟时),通常会发生这种错误。您需要确保所有入口点(例如,包含您要延迟的函数的模块)都导入一个执行相关路径操作的模块。

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