私は、指定されたモデルの最初のn個のエンティティで始まるページをレンダリングしようとしています。ページは定期的に新しいアイテムをチェックします。たとえば、twitterがつぶやきのページをレンダリングし、利用可能なときに「新しい6つのつぶやき」を表示する方法と同様に、私は更新のための要求を受信すると、タイムスタンプと、私はそのタイムスタンプの前にアイテムをフィルタリングするクエリを実行し、将来のクエリの実行でend_cursorとして使用できるように、クエリの先頭にカーソルを置くことは可能ですか?
query = Item.all()
query.order("-created")
query.fetch(100)
cursor = query.cursor()
timestamp = time.time()
# render a page storing cursor and timestamp so it can request for older items
# & regularly check for newer ones.
:
私は現在、これを行います。
(これはより高速であるかどうか)、次のようにそれを行うための方法をがあった場合、私は思っていた:
- グラブは、初めのカーソルは、など、データをフェッチするのは、このupdate_cursorに
- を呼びましょう。 従来通り。
ページが更新を要求する(とupdate_cursorを提供して)同じクエリを実行するが、query.with_cursor(end_cursor=update_cursor)
とquery.run()
との代わりに、フェッチ()それは私が以前から開始ポイントまで私のすべての項目をつかむようにします。
私は0個のエンティティをフェッチしてカーソルを見ようとしましたが、それは空の文字列を返します。
これは可能ですか(可能であれば、タイムスタンプ方式よりもかなり高速です)。どんな提案や助言?
'query.with_cursor()'は最初のパラメータとして開始カーソルが必要です。 'end_cursor'を渡しているだけなので、うまくいきません。 – systempuntoout