Я работаю с NoSQL API Azure Cosmos DB, и мне нужно повторно обработать изменения из канала изменений в течение указанного диапазона дат или между двумя токенами продолжения с помощью Java SDK.
На основе документации я не нашел прямой возможности фильтровать изменения по диапазону дат. Мой вариант использования требует получения изменений, произошедших между определенными временными метками, или путем предоставления двух токенов продолжения.
Есть ли способ реализовать эту функциональность с помощью Java SDK или существует альтернативный подход для достижения этот? Будем признательны за любые рекомендации и предложения.
Я реализовал, как показано ниже. Но согласно документам Azure, lsn будет помечен для нескольких обновленных элементов, я знаю, что мы можем использовать setStartTime, а как насчет endTime( Если возможно, мне нужны документы, которые были обновлены до будущей даты) или могу ли я реализовать способ сравнения ч/б двух маркеров продолжения.
@Override
public Boolean call() throws Exception {
ChangeFeedProcessorOptions options = new ChangeFeedProcessorOptions();
AtomicReference changeFeedProcessorRef = new AtomicReference();
ChangeFeedProcessor changeFeedProcessor = new ChangeFeedProcessorBuilder()
.hostName("Reprocess_LocalHost")
.feedContainer(feedContainerId)
.leaseContainer(leaseContainerId)
.options(options)
.handleChanges(changes -> {
System.out.println("Start");
for (JsonNode document : changes) {
long currentLsn = document.get("_lsn").asLong();
if (currentLsn = toTokenLsn) {
System.out.println("Reached the specified toToken LSN: " + toTokenLsn + ". Stopping processing.");
ChangeFeedProcessor processorInstance = changeFeedProcessorRef.get();
if (processorInstance != null) {
processorInstance.stop()
.subscribeOn(Schedulers.boundedElastic())
.doOnSuccess(avoid -> System.out.println("Change Feed Processor has been stopped successfully."))
.doOnError(error -> System.err.println("Failed to stop the Change Feed Processor: " + error))
.subscribe();
}
return;
}
}
System.out.println("End");
})
.buildChangeFeedProcessor();
changeFeedProcessorRef.set(changeFeedProcessor);
changeFeedProcessor.start().block();
return true;
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... date-range
Диапазон дат Cosmos ChangeFeed ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Использование нескольких экземпляров для процессора Cosmos ChangeFeed Feed
Anonymous » » в форуме JAVA - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Использование нескольких экземпляров для процессора Cosmos ChangeFeed Feed
Anonymous » » в форуме JAVA - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Использование нескольких экземпляров для процессора Cosmos ChangeFeed Feed
Anonymous » » в форуме JAVA - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-