2012-11-14 26 views
5

Ich folge einfach dieser post, um Couchbase View zu testen. Wenn Bearbeitungsansicht Couchbase GUI verwenden und speichern, wurde die Ansicht nicht sofort aktualisiert.Couchbase View wird nicht sofort aktualisiert?

Für example.With PHP-Skripte speichern einige Array Couchbase.And Dokument in 'dev_sessions' einen Namen 'letzte' Ansicht definieren:

function (doc) { 
if(doc.namespace == 'sessions') { 
emit(doc.lastSeen, 1); 
} 
} 

Dann curl verwenden, um die json Ergebnis zu erhalten. Zum ersten Mal: ​​

$ curl 
http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true' 
{"rows":[ ] } 

Zweitens:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true' 
{"rows":[ 
{"key":1352872218,"value":1}, 
{"key":1352879418,"value":3} 
] 
} 

Ein weiterer Test, ein neues Array in PHP-Skripte hinzufügen:

'eb255262434407766f212d1b6f23' => array(
'namespace' => 'sessions', 
"type" => "user", 
"userID" => "1107", 
'lastSeen' => time(), 
'firstSeen' => time(), 
"remoteAddress" => "2.3.4.5", 
"location" => "Vienna/Austria", 
"name" => "Golden K" 

Run kräuselt wieder, zum ersten Mal: ​​

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true' 
{"rows":[ 
{"key":1352872218,"value":1}, 
{"key":1352879418,"value":3} 
] 
} 

Zweite Zeit:

$ curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true' 
{"rows":[ 
{"key":1352875163,"value":1}, 
{"key":1352882363,"value":4} 
] 
} 

Wenn geänderte Daten oder View Skript, klicken Sie auf Views - 'Show Results' Schaltfläche in Couchbase GUI, die erste & zweites Mal tut anders. Warum wird die Ansicht nicht sofort aktualisiert?

+0

Wenn Daten oder View Skript geändert, nur das erste Mal von einer Ansicht zur Folge erhalten wird, nicht aktualisieren Nach dem zweiten Mal wird diese Ansicht und alle anderen Ansichten sync aktualisiert. Das Ergebnis ist corrent. – user1815744

Antwort

12

Dies ist das erwartete Verhalten. Couchbase "aktualisiert" standardmäßig den Index nach dem Aufruf der Ansicht. Und das hat eine schnellere Reaktionszeit.

Beim Ausführen einer Ansicht können Sie den Status der Ansicht (in der Tat ihren Index) mit dem veralteten Parameter steuern.

In Ihrem Fall tun nur:

curl 'http://192.168.228.134:8092/default/_design/dev_sessions/_view/last/?group_level=1&reduce=true&stale=false' 

Und es wird den Index aktualisieren, bevor die Daten an die Anwendung zurück.

Sie können in der Dokumentation alle Informationen zu diesem Parameter finden und wie die Ansichten arbeiten:

http://www.couchbase.com/docs/couchbase-manual-2.0/couchbase-views-writing-stale.html

+0

THX.Es ist klar.BTW, Couchbase Forums Spam-Block ist zu streng für asiatische IP.Ich habe bereits drei IPs geändert, von China nach HK, aber kann immer noch keinen neuen Beitrag abschicken.%> _ <% – user1815744

+0

Nicht sicher, dass es mit der IP-Adresse, aber wahrscheinlich aufgrund der Anzahl der Links, die Sie in Ihre Nachricht eingefügt haben. Ich werde das an den Couchbase Community Manager richten –

Verwandte Themen