【问题标题】:NDB post_put_hook and taskqueueNDB post_put_hook 和任务队列
【发布时间】:2013-07-04 10:27:52
【问题描述】:

我在使用 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。

这是我第一次使用这样的钩子,所以也许我在这里缺少一些东西。 有什么线索吗?

谢谢!

【问题讨论】:

    标签: google-app-engine app-engine-ndb task-queue


    【解决方案1】:

    所以我已经弄清楚了问题所在:在我的任务中,我在同一个文档上执行了另一个 put(),这解释了这种行为。

    【讨论】:

    • 我认为有一种方法可以结束您自己的问题,因为这是您自己的代码中的一个错误,而您没有向我们展示所有代码。
    猜你喜欢
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多