2

使用事例

ここで参照されている受信トレイの複製または「アイドル ユーザーは無料」: http://blog.couchbase.com/what%E2%80%99s-new-apache-couchdb-011-%E2%80%94-part-three-new -機能複製

ユーザーごとのデータベースの CouchDB アーキテクチャでは、ユーザーがログインしたときに、ユーザーのデータベースと「受信トレイ」または「マスター」データベースの間でのみレプリケーションをトリガーし、継続的なレプリケーションを実行してリソースを浪費しないようにすることをお勧めします。常に非アクティブなデータベース。また、私のアプリケーション設計では、非アクティブなユーザーのデータベースを削除/アーカイブし、長い間ログインしていない場合にのみ復元/作成したいと考えています。

問題

_session データベースは、新しいセッションが発生したときに監視するための _changes API をサポートしていないようです。私が考えることができる唯一のことは、ドキュメント更新ハンドラーを使用してユーザードキュメントの「last_login」タイムスタンプを更新し、_users データベースで _changes を監視することです。クライアント側にカスタム ロジックを追加することになるため、このアプローチは好きではありません。

質問:

ユーザーのログイン時にイベントをトリガーするための CouchDB API はありますか?

4

1 に答える 1

1

そのようなはありません。CouchDB には現在、Basic、Cookie、OAuth (+ プラグイン経由の Facebook) の 3 種類の認証があります。Cookie と OAuth に対してそのようなイベントを発行することができた場合、可能性がありますが、Basic に対してはそうではありません。これは、何らかの URL に対する資格情報を含む特別なヘッダーを含む通常の要求であるためです。つまり、_sessionリソースがユーザーのログイン時に何らかのイベントを発生させたとしても、そのようなロジックを回避することは可能です。

少し前に同じ問題を解決しようとしましたが、それは何の価値もなく、実際の問題を解決しないと判断しました.

PS ただし、CouchDB ログを解析し、何らかの条件でイベントを発生させ、それらを redis または MQ サービスに渡してさらに処理することはできますが、ディスク容量が急速に不足することに注意してください。

于 2012-10-24T08:37:08.267 に答える