Недавно мы начали использовать couchbase. Мы используем java spring-data-couchbase с Джерси для доступа к couchbase. Получив доступ к низкоуровневому java-sdk-api, мы установили время истечения (TTL) в конкретный документ с помощью KEY (id). Он работает нормально. Код выглядит следующим образом.В Couchbase, истекший документ включен в список запросов с содержимым NULL
// define couchbaseTemplate for lower-level access to Java SDK
@Autowired
CouchbaseTemplate couchbaseTemplate;
// setExpiry method update expiry given a doc ID
@Override
public void setExpiry(String key, int expN) throws RepositoryException {
couchbaseTemplate.getCouchbaseClient().touch(key, expN);
}
Проблема, с которой мы сталкиваемся, заключается в том, что когда мы пытаемся получить список документов с использованием запроса, список содержит истекшие документы. И когда мы пытаемся получить доступ к документам из списка, мы обнаружили, что оно равно null.
Но если мы выполним запрос через некоторое время, истекший документ больше не включается в список.
Пример: Когда ехрп = 10 секунд, и мы выполняем запрос около 10 секунд после установки TTL, просроченные документы включены Если мы не выполнить запрос около 20 секунд после установки TTL, просроченные документы больше не включены
в несвежих вариантов мы устанавливаем
Query.setStale(Stale.false)
мы пытались манипулировать
Query.setIncludeDocs
Но не л uck, любая помощь ....