私はPythonを使用してndbと強い整合性を達成しようとしています。 強く一貫していないように、読書が動くように私は何かが欠けているように見えます。Ndb強い一貫性と頻繁な書き込み
クエリは次のとおりです。
links = Link.query(ancestor=lead_key).filter(Link.last_status ==
None).fetch(keys_only=True)
if links:
do_action()
キー構造は、次のとおりです。
Lead root (generic key) -> Lead -> Website (one per lead) -> Link
私はタスクキューを使用して同時に実行され、このクエリは、すべてのタスクの終了時に行われる多くのタスクを持っています。 last_status
フィールドを更新すると例外が多すぎることがありますが、再試行でそれを処理します。それは強い一貫性を破ることができますか?
last_status
がNone
に等しいリンクが残っていない場合、予期される動作はdo_action()
です。実際の動作は矛盾しています。時にはdo_action()
が2回呼び出され、まったく呼び出されないことがあります。
ありがとうございます!エンティティを頻繁に更新するとどうなりますか? 'link.put()'は周波数を1秒あたり1回書いておくのを少し待つので時間がかかりますか?または、すぐに返され、その後の祖先クエリが古い結果を返す可能性がありますか? – subcoder
レートリミットを超過すると例外が発生することがありますが、私は正確な例外を知っていません。しかし、試してみるのは簡単な実験です。ダンノートのように、これはデプロイされたアプリケーションでテストする必要があります。 –