如何使用GAE延期功能?

时间:2012-03-06 20:14:07

标签: 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))

并获得

PermanentTaskFailure: 'module' object has no attribute 'send_message'

这里有什么问题?

UPD。看起来问题与那里描述的问题相同 - PermanentTaskFailure: 'module' object has no attribute 'Migrate' - 但我不明白如何解决这个问题。

1 个答案:

答案 0 :(得分:8)

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

延迟库的限制

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

通过deferred.defer 调用的函数不能相同 模块,如调用deferred.defer的请求处理程序。