Я работаю с 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
Программисты JAVA общаются здесь
1727793834
Anonymous
Я работаю с 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;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79040391/cosmos-changefeed-date-range[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия