1

NDBクエリを実行していますが、これは部分的なオブジェクトのみをフェッチしているようです。モデルの場合は、キャッシュをオフにしました。ただし、データストアビューアに入力されているのを見ると、多くのプロパティがNoneで返されています。

これはローカル開発サーバー(およびデプロイ済み)で行われ、クエリはバックエンドプロセスによって実行されます。

注:memcacheをクリアしても効果はありませんでした。

注:バックエンドを再起動すると、正しいデータのプルダウンが開始されます。

基本的に:

バックエンドはX秒ごとにモデルのインスタンスのクエリを開始します

フロントエンドにより、モデルのインスタンスが変更されます

バックエンドは、再起動されるまでインスタンスの元のバージョンを表示し続けます

バックエンドコードは非常に単純です。

while 1:
    time.sleep(2)
    q = None
    res = None
    q = core.Agent.query()
    res = q.fetch(10)
    for a in res:
        logging.error("%s" % a.to_dict())

フロントエンドはいくつかのプロパティを変更します(そしてそれはビューアに表示されます)が、バックエンドは古い値のみを表示します。また、Filterは正しい値に基づいてフィルタリングするようですが、fetch()は古いものを返します。

4

1 に答える 1

1

ループの先頭でコンテキストキャッシュをクリアする必要があります。例:

while 1:
  ndb.get_context().clear_cache()
  <rest of your code>
于 2012-04-09T21:17:51.820 に答える