【发布时间】:2018-12-27 15:03:03
【问题描述】:
我有一个服务总线触发器 Azure 功能,每次主题收到消息时都会触发该功能。 消息定期到达,例如每 30 分钟一次。在批次之间,没有活动。
该函数没有什么特别的,它通过 HttpClient 异步发送消息。该函数会定期以 TaskCanceledException 停止。
HttpClient 是静态的
public static class SampleEventTrigger
{
private static DefaultHttpWebHook webHook = new DefaultHttpWebHook(new Uri("https://nonexistent.invalid/sampleWebHook"), "/event/sampleEvent");
[FunctionName("SampleEventTrigger")]
public static async Task Run(
[ServiceBusTrigger("sampleevent", "SampleEvent.Subs", AccessRights.Manage, Connection = GlobalConfiguration.ServiceBusConnection)]BrokeredMessage message,
TraceWriter log)
{
log.Info("launch sample event subscription");
try
{
var resp = await webHook.Post(message, log);
log.Info($"{resp.StatusCode}, {resp.ReasonPhrase}");
}
catch (Exception ex)
{
log.Error($"exception in webhook: {ex.Message}", ex);
throw;
}
}
}
如果我稍后再举起它,这一次它就过去了。 这个异常从何而来?我们如何避免这种情况? 是否与超时有关,还是与启动太慢的功能有关?
我的功能处于消费模式。
【问题讨论】:
-
顺便说一句,你为什么要等待Task.CompletedTask?您可以删除该行:)
-
当然,只是快速复制粘贴代码来演示问题
-
您能提供以下信息吗? 1) 您的函数应用部署所在的区域,2) 函数应用名称 (you can share privately),以及 3) 发生这种情况的时间范围(首选 UTC。)
-
您好,Id=a27b04cd-7ce4-4a11-b8ed-e145fc9eabae 地区为西欧,时间戳:2018-07-18T09:30:00.193Z
-
我得到了一个类似的
TaskCancelledException,但内部异常为空。尽管就我而言,我使用的是TimerTrigger。我认为这与异步的方法有关。
标签: azure azure-functions azureservicebus