0
我有一個CouchDB,我通過CouchBaseLite 1.4連接。在繼續執行應用程序之前,我無法等待所有文檔被拖動。CouchbaseLite等待pull複製完成
目前我正以非常冒險的方式實現這一目標,並且我想根據適當的編碼標準來修正它。
電流:
pull.setContinuous(false);
pull.start();
//Waits for pull replication to start pulling in data
while(!pull.isRunning());
//Waits for pull replication to finish.
while(!pull.getStatus().equals(Replication.ReplicationStatus.REPLICATION_STOPPED));
//Set continuous to true
pull.setContinuous(true);
//Start it again.
pull.start();
的原因,我這樣做是我可能必須在DB 2個文件,我需要等待,如果它們不存在的桌面應用程序,進入設置模式。
- 有沒有辦法等待所有文件完成拉 沒有哈克雙
while
? - 更好的是,讓我們假設我知道
_id
的文檔。在繼續之前是否有辦法等到BOTH被拉出?
這並不完全解決我的問題,因爲'changeListener'不會阻止我的主線程運行。我採用了第二個建議,並使用一次性複製來抓取這兩個文檔。它現在運行速度明顯加快。儘管我仍然使用了double,但我只是在等待兩個文檔,因此即使代碼很醜,暫停也很少且可以接受。 –
啊,是的,我通常會以無阻塞的方式思考。還有其他一些想法:通過回調中的調用來獲取主執行,或者讓線程進入休眠狀態並從回調中發出信號? – Hod