【发布时间】:2012-03-06 20:14:07
【问题描述】:
我执行以下操作:
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' - 但我不明白如何解决这个问题。
【问题讨论】:
-
我认为尼克对该链接答案的评论非常清楚 - 您不能使用在您直接用作 app.yaml 处理程序的模块中定义的函数。将其移至其他文件并导入。
-
@DanielRoseman,这是唯一可能的方法吗?那么,我将在 2 个不同的文件中拥有相同的功能吗?直接使用Task Queue会更好吗?
-
为什么会在两个文件中?将代码移动到单独的文件中,不要复制。
-
@DanielRoseman,我想说
MyHandler将在一个文件中,而send_message应该在第二个文件中。看起来不太好。
标签: python google-app-engine task-queue deferred