2012-10-23 50 views
2

使用例CouchDB的:當

複製收件箱或「空閒用戶是免費的」用戶登錄此處引用觸發事件:http://blog.couchbase.com/what%E2%80%99s-new-apache-couchdb-011-%E2%80%94-part-three-new-features-replication

在數據庫每用戶CouchDB的架構,這將是巨大的只有在用戶登錄時纔會觸發用戶數據庫與「收件箱」或「主」數據庫之間的複製,從而不會通過始終在不活動的數據庫上運行連續複製來浪費資源。另外,在我的應用程序設計中,我希望刪除/存檔非活動用戶的數據庫,並且只有在他們長時間登錄後才能恢復/創建它。

問題

它看起來並不像_session數據庫支持_changes API監測,當新的會話發生。我唯一能想到的是使用文檔更新處理程序來更新用戶文檔上的「last_login」時間戳,然後觀察_users數據庫上的_changes。我不喜歡這種方法,因爲它意味着在客戶端添加自定義邏輯。

問題:

是否有觸發事件,當用戶登錄一個CouchDB的API?

回答

1

沒有這樣的。 CouchDB目前有三種身份驗證:基本,Cookie,OAuth(+ Facebook通過插件)。可能是,如果有可能爲Cookie和OAuth發出這樣的事件,而不是基本的,因爲它只是一個帶有特殊標頭的常規請求,包含針對某個url的憑證。換句話說,即使_session資源會在用戶登錄時引發一些事件,也可以解決這種邏輯問題。

很久以前,我們試圖解決同樣的問題,但已經決定,它只是沒有價值,並沒有解決我們的實際問題:我們仍然遇到了用戶匿名和用戶已知的情況。

P.S.但是您仍然可以解析CouchDB日誌,在某些情況下引發事件並將它們傳遞給redis或MQ服務以進行進一步處理,但請注意快速磁盤空間用完。

+0

+1謝謝Kxepal。我認爲目前沒有可用的東西,但是如果發生變化,我會留下這個問題。 – pokstad

+0

順便說一句,爲什麼不創建[功能請求](https://issues.apache.org/jira/browse/COUCHDB)呢?(; – Kxepal

+0

我想我會的!這將是很好的民意調查/ _session/_changes用於訪問新會話和舊會話不再有效時。 – pokstad