Cosmos DB-停止IChangeFeedProcessor实例

时间:2018-11-30 18:29:54

标签: azure-cosmosdb azure-cosmosdb-sqlapi

我正在使用更改提要处理器库来使用Cosmos DB更改提要。 IChangeFeedProcessor创建代码如下所示:

var builder = new ChangeFeedProcessorBuilder();
processor = await builder
  .WithHostName(hostName)
  .WithFeedCollection(feedCollectionInfo)
  .WithLeaseCollection(leaseCollectionInfo)
  .WithObserverFactory(observerFactory)
  .BuildAsync();
await processor.StartAsync();

在IChangeFeedObserver实现的ProcessChangesAsync()方法中,我为批处理中的每个文档调用一个外部API。

我想在外部API停止运行时停止处理器,以便在无法处理时不从变更提要中读取文档。

当IChangeFeedObserver.ProcessChangesAsync()实现引发异常时,如何停止处理器(使用StopAsync()方法)?

1 个答案:

答案 0 :(得分:1)

不确定实际问题,但是如果问题是如何在观察器内部访问处理器,该如何处理。您可以装饰观察者,将CFP实例传递给装饰器,然后捕获/重新抛出所有异常,但是在catch停止CFP中。