我正在使用更改提要处理器库来使用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()方法)?
答案 0 :(得分:1)
不确定实际问题,但是如果问题是如何在观察器内部访问处理器,该如何处理。您可以装饰观察者,将CFP实例传递给装饰器,然后捕获/重新抛出所有异常,但是在catch停止CFP中。