我在使用 ndb post_put_hook 在任务队列中添加一些东西时遇到了一些问题。我在我的模型中创建了钩子,每当 put() 完成时,钩子就会无限期地执行。如果我除了在任务队列中添加一些东西之外做任何其他事情,它工作正常,钩子只执行一次。
当我这样做时:
class MyModel(ndb.Model):
name = StringProperty()
def _post_put_hook(self, future):
logging.info("Doing Something")
MyModel(name="myname").put()
输出是:
Doing Something
但是,这样做:
class MyModel(ndb.Model):
name = StringProperty()
def _post_put_hook(self, future):
logging.info("Adding a task")
taskqueue.add(...)
MyModel(name="myname").put()
输出是:
Adding a task
Adding a task
Adding a task
...
Adding a task
从那里我必须停止 SDK,否则它会继续执行。仅供参考,任务已正确添加(尽管很多次)并且每次返回 200。
这是我第一次使用这样的钩子,所以也许我在这里缺少一些东西。有什么线索吗?
谢谢 !