[英]How to handle CancellationToken in Azure function eventhub trigger
在 Azure 函数事件中心触发器 (v3) 中,它在Run
方法中接收取消令牌。 当发出取消信号时,这意味着它正在关闭的服务器。 如果我将此令牌发送到例如使用httpClient
的Get
操作,它将抛出TaskCanceledException
并且函数将结束。
此函数正在处理的事件是否会被发送到另一台服务器上的函数的另一个实例,还是会丢失? 是否应该以不同的方式处理取消?
[FunctionName(nameof(MyFunction)), FixedDelayRetry(10, "00:00:15")]
public async Task RunAsync(
[EventHubTrigger("%InEventHubName%",
Connection = "InEventHubConnectionString",
ConsumerGroup = "%ConsumerGroup%")]
EventData[] events,
PartitionContext partitionContext,
CancellationToken cancellationToken)
{
foreach (var ev in events)
{
var response = await _httpClient.GetAsync("http://example.com/fetch?key=" + ev.Properties["Key"],
cancellationToken);
await Process(response, cancellationToken);
}
}
此函数正在处理的事件是否会被发送到另一台服务器上的函数的另一个实例,还是会丢失?
未处理的异常可能会导致您丢失消息。 导致异常的执行将继续执行指针。
是否应该以不同的方式处理取消?
您可以选择忽略取消。 对于这种情况,这可能是最好的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.