2017-11-05 3 views
1

ArangoJSライブラリを使用しているNodeJSでサポートされているREST APIで、コレクション内のドキュメントでawait save(...)を呼び出しています。 私はwaitForSyncオプションを使用していません。ArangoDb:save()からAQLを介した空き時間(waitForSync)までの時間?

保存の直後に、クライアントにSSEイベントを送信し、すぐに別のREST APIメソッドを呼び出します。このメソッドは、AQLを使用して同じコレクションを照会します。残念ながら私は以前の(古い/変更されていない)データを元に戻します。ちょっと待ってからAQLクエリーをすれば、新鮮なデータが得られます。

waitForSyncですか?ほとんどのドキュメントでは、このオプションはデータがディスクに同期するのを待ちますが、ArangoDBがメモリ内のほとんどのデータを保持していることを理解しているので、メモリに対してクエリを行う次のクエリには影響しないはずです。

誰でも気をつけてください。

更新

答えとしてただ、これをマークするために、私自身の答え

+0

私の期待は、「await」だけで十分であるはずです。 'waitForSync'を使う必要はありません。あなたが言ったように、後者の目的は、サーバー上のデータ変更が永続ストレージに同期されていることを確認することです。ただし、データ変更クエリが呼び出し元に正常に返された場合は、後続の呼び出し元に対して直ちに変更を表示する必要があります。あなたは同じサーバーに書いたり、同じサーバーから読んでいるのですか、あるいはArangoDBに関してマルチサーバーの設定をしていますか? – stj

+0

同じサーバーです。私は最小限のセットアップで再作成しようとします。 Nodejsの前にあるNginxサーバーのように、ここには他の失敗の原因があるかもしれません。 – specimen

+0

あなたはあなたの編集を回答に移動し、その質問に回答としてマークする必要があります。それは他人を助けるだろう。 –

答えて

1

を参照してください。

予想したように、ArangoDbと間違って何もありません。待っているコメント/確認のおかげで、私はセットアップについてさらに調べました。キャッシュに問題があることが判明し、 'no-cache'でCache-Controlヘッダーを追加することで問題が解決されました。

面白いことに、デベロッパーコンソールがChromeで開いていても、問題はありませんでした。開発モードで[キャッシュを無効にする]チェックボックスが開発中に問題を隠していたことが判明しました。 304 Not変更されたレスポンスの多くが問題になっています。

関連する問題