如何使用GAE延期功能?

LA_*_*LA_ 1 python google-app-engine task-queue deferred

我做以下事情:

from google.appengine.ext import deferred

def send_message(client_id, message):
    logging.info("sending message...")

class MyHandler(webapp.RequestHandler):
    def get(self, field_name):
        ...
        scUpdate = {
                       'val': value,
                       'name': field_name_converted
                   }
        message = simplejson.dumps(scUpdate)                      
        deferred.defer(send_message, client_id, message, _countdown=random.randrange(0, 5, 1))
Run Code Online (Sandbox Code Playgroud)

并得到

PermanentTaskFailure: 'module' object has no attribute 'send_message'
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

UPD.看起来问题与那里描述的相同 - PermanentTaskFailure:'module'对象没有属性'Migrate' - 但我不明白如何解决这个问题.

Chr*_*ris 8

请参阅https://developers.google.com/appengine/articles/deferred:

延迟库的限制

  • 您无法在请求处理程序模块中调用方法.

经由deferred.defer的调用的函数不能像其中deferred.defer的被称为请求处理器相同的模块中.