2012-11-14 22 views
5

Po prostu wykonuję tę operację post, aby przetestować widok Couchbase. Podczas edycji widoku użyj interfejsu GUI Couchbase i zapisz, widok nie został natychmiast zaktualizowany.Couchbase View nie aktualizuje się natychmiast?

skrypty php example.With przechowywać niektóre tablica do Couchbase.And zdefiniować nazwie „ostatni” Widok w dokumencie „dev_sessions”:

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

Następnie użyj pozwijane, aby uzyskać wynik json. Pierwszy raz:

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

drugie:

$ 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} 
] 
} 

Kolejny test, dodać nową tablicę w skryptach PHP:

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

Uruchom ponownie Curl, po raz pierwszy:

$ 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} 
] 
} 

Drugi raz:

$ 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} 
] 
} 

Jeśli zmienione dane lub widok skrypt, kliknij przycisk Views - 'Show Results' w Couchbase GUI, pierwszy & raz drugi robi inaczej. Dlaczego widok nie aktualizuje się natychmiast?

+0

Jeśli zmienione dane lub widok skrypt, tylko pierwszy raz się wynikać z jednego widoku nie aktualizuje Po drugim uruchomieniu ten widok i inne widoki wszystkich widoków będą aktualizować synchronizację. Rezultatem jest corrent. – user1815744

Odpowiedz

12

Jest to oczekiwane zachowanie. Couchbase domyślnie "aktualizuje" indeks po wywołaniu widoku. A to zapewnia szybszy czas reakcji.

Podczas wykonywania widoku można kontrolować status widoku (w rzeczywistości jego indeks) za pomocą nieaktualnego parametru.

W twoim przypadku po prostu zrobić:

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

I będzie aktualizować indeks przed powrotem dane do aplikacji.

można znaleźć w dokumentacji wszystkie informacje na temat tego parametru i jak poglądy pracują:

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

+0

THX.To jest jasne.BTW, blok antyspamowy fora Couchbase jest zbyt rygorystyczny dla azjatyckiego IP.I już zmieniłem trzy adresy IP, z Chin na HK, ale nadal nie mogę wysłać nowego posta.%> _ <% – user1815744

+0

Nie jestem pewien, że to związane z adresem IP, ale prawdopodobnie ze względu na liczbę linków umieszczonych w wiadomości. Przekażę to do Community Manager Couchbase –

Powiązane problemy