0

ndb post_put_hook を使用してタスクキューに何かを追加するという問題に直面しています。モデルにフックを作成しました。put() が実行されるたびに、フックが無期限に実行されます。タスクキューに何かを追加する以外に何かを行うと、正常に機能し、フックは1回だけ実行されます。

私がこれを行うとき:

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 を停止する必要があります。そうしないと、SDK が実行され続けます。参考までに、タスクは適切に追加され (何度も何度も)、毎回 200 を返します。

このようなフックを使用するのはこれが初めてなので、ここで何か不足している可能性があります。どんな手掛かり ?

ありがとう !

4

1 に答える 1

0

だから私は問題が何であるかを理解しました.私のタスクのどこかで、同じドキュメントで別の put() を実行し、この動作を説明しています.

于 2013-07-04T10:39:32.140 に答える