Skip to main content
 首页 » 编程设计

python之如何使用 GAE 延迟功能

2025年05月04日14tuyile006

我做了以下事情:

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' 

这里有什么问题吗?

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

请您参考如下方法:

参见 https://developers.google.com/appengine/articles/deferred :

延迟库的局限性

  • 您不能调用请求处理程序模块中的方法。

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