我有一个 Azure 函数,可以根据消费计划解压缩档案。其中一些解压时间恰好超过 10 分钟,并且可能会超时。我正在考虑制定一个单独的应用程序服务计划,在消耗计划超时时我将重新路由提取。
你会怎么做?函数中的计时器?捕获超时异常?您有更好的建议吗?
Thanks
对于那些感兴趣的人,我最终将自己的超时(比 Azure 早几秒)添加到提取函数中,然后重新路由到由服务应用程序计划处理的另一个队列,而不是超时。
Code :
using (var timeoutCts = new CancellationTokenSource())
{
try
{
// task completed within timeout
timeoutCts.CancelAfter(590000);
var counter = await ExtractArchiveAsync(archiveFullName, myBlob, timeoutCts.Token);
log.Info($"Extracted : { counter.GetCurrentCount() }");
}
catch (OperationCanceledException)
{
// timeout logic
log.Info($"Function timedout, redirected to long queue");
var queue = StorageService.GetCloudQueueReference("ArchiveToExtractQueueTimedOut");
await queue.AddMessageAsync(new CloudQueueMessage(archiveFullName));
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)