Верно ли, что вы не можете установить ChangeFeedOptions (в частности, PartitionKey и lease-prefix) при использовании высокоуровневого ChangeFeedProcessor? Эта библиотека слишком высокого уровня? Я использую V3 Cosmos. Все примеры в сети показывают низкоуровневые способы настройки V2. Вот V3 ProcessorBuilder ... Мне нужен .options или .WithPartitionKey, et c.
ChangeFeedProcessor changeFeedProcessor = cosmosClient.GetContainer("myDB", "myContainer")
.GetChangeFeedProcessorBuilder<myData>("changeFeedTest", HandleChangesAsync)
.WithPollInterval(new TimeSpan(0, 0, 1))
.WithInstanceName("Host1" )
.WithLeaseContainer(leaseContainer)
.Build();
Может, вам поможет конкретный пример:
Допустим, у вас есть игра в шахматы. Ходы игроков отправляются в CosmosDB в контейнере PlayerActions. Все игроки и зрители этой игры подписываются на ленту изменений. Работает нормально, но в масштабе? Когда у вас запущено 10 000 игр, вы не хотите, чтобы каждый клиент получал в 10 000 раз больше уведомлений, чем следовало бы. Только те из GameID (PartitionKey), которые их интересуют. Я почти уверен, что никто не посоветует мне иметь 1 контейнер на игру, поэтому мне нужно отфильтровать ленту изменений. Я бы предпочел использовать библиотеку процессора V3, но мне может понадобиться go с API более низкого уровня. У кого-нибудь есть какие-нибудь советы, прежде чем я сделаю дополнительную работу?
Вот еще один способ задать вопрос. В примере в документации здесь: https://docs.microsoft.com/en-us/azure/cosmos-db/change-feed-processor Они показывают города AE, идущие на один хост-процессор, но, похоже, больше нет API для того, что настроено с помощью GetChangeFeedProcessorBuilder.