在将 cosmos db 重新部署到不同的服务中后,我们遇到了一个奇怪的问题,即更改提要订阅者没有获取新记录。我的假设是,当饲料停止时,一旦容器再次可用,它就会从停止的地方重新开始?
很想知道是否有其他人以前见过这种行为,或者它是否可能与提要的配置有关?
添加一些上下文手动删除和重新创建容器似乎可以解决问题,所以它似乎与部署相关?
这就是我们的更改提要配置的样子。
var changeFeedProcessorBuilder = (await _cosmosProvider
.GetContainer(_config.DatabaseName, _config.SourceContainerName))
.GetChangeFeedProcessorBuilder<CosmosAggregateEventEntity>(_projector.Name, OnMessage)
.WithInstanceName($"Processor{Guid.NewGuid().ToString().Replace("-", string.Empty)}")
.WithLeaseContainer(await _cosmosProvider.GetContainer(_config.DatabaseName, CosmosChangeFeedConfiguration.LeaseContainerName, "/id"))
.WithStartTime(DateTime.MinValue.ToUniversalTime());
if (_defaultPollingTimeOverride != null)
changeFeedProcessorBuilder.WithPollInterval((TimeSpan)_defaultPollingTimeOverride);
_processor = changeFeedProcessorBuilder.Build();
await _processor.StartAsync();