你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
EventProcessor<TPartition>.OnProcessingErrorAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在事件处理程序基础结构的操作中发生意外异常时,执行所需的任务。
protected abstract System.Threading.Tasks.Task OnProcessingErrorAsync (Exception exception, TPartition partition, string operationDescription, System.Threading.CancellationToken cancellationToken);
abstract member OnProcessingErrorAsync : Exception * 'Partition * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Protected MustOverride Function OnProcessingErrorAsync (exception As Exception, partition As TPartition, operationDescription As String, cancellationToken As CancellationToken) As Task
参数
- exception
- Exception
事件处理程序操作期间发生的异常。
- partition
- TPartition
与错误关联的分区的上下文(如果有);否则为 null
。 这只能针对 的成员 EventProcessorPartition进行初始化,具体取决于发生错误的点。
- operationDescription
- String
发生异常的操作的简短文本说明;旨在仅提供信息。
- cancellationToken
- CancellationToken
一个 CancellationToken 实例,用于向请求发出取消处理信号。 当处理器关闭时,最有可能发生这种情况。
返回
注解
当事件处理程序本身中观察到异常时,将调用此错误处理程序;对于已实现以处理事件或其他对处理器操作不重要的替代和扩展点的代码中的异常,不会调用它。 事件处理程序将尽一切努力从异常中恢复并继续处理。 如果遇到无法从中恢复的异常,处理器将尝试丧失其正在处理的所有分区的所有权,以便可以重新分发工作。
此方法出现的异常可能是致命的,也可能是非致命的;由于处理器可能无法准确预测异常是致命的还是其状态已损坏,因此此方法负责确定是应终止还是重启处理。 如果需要,可以通过调用 StopProcessingAsync(CancellationToken) 和/或 StartProcessingAsync(CancellationToken)安全地执行此操作。
对于生产方案,建议通过考虑此错误处理程序的观察结果、初始化分区处理时调用的方法以及停止对分区的处理时调用的方法来做出决策。 许多开发人员还会在此决策中包含来自其监视平台的数据。
与事件处理一样,如果错误处理程序的代码中出现异常,则事件处理程序将允许它冒泡,并且不会尝试以任何方式处理它。 强烈建议开发人员将异常方案考虑在内,并根据需要使用 try/catch 块和其他手段来防范它们。
此方法将同时调用,处理器不会等待,因为每个错误都是独立的。 对调用没有时间限制;实现可以安全地根据需要执行长时间运行的操作和重试。