gpt4 book ai didi

azure-webjobs - Azure Webjobs SDK 和队列处理错误

转载 作者:行者123 更新时间:2023-12-01 11:36:24 26 4
gpt4 key购买 nike

我正在处理一个网络作业,用于检查网络服务器的一些数据。有时网络服务器很忙,会在几秒钟后重试。

问题是,如果我只是忽略它并通过该函数,它将从队列中删除消息,我将无法重试调用。

我当前的解决方案(我一点也不喜欢)是通过一个异常来增加 dequque 数量并将消息放回队列中。然而,这看起来非常残酷,需要重新启动运行 webjob 的线程。

还有其他处理方法吗?

最佳答案

Webjobs SDK 将在队列触发函数抛出异常时重试它们。重试次数通过 JobHostConfiguration.Queues.MaxDequeueCount 属性配置,如 here 所述。 .

如果您不想依赖 SDK 的重试策略,您可以随时在自己的代码中处理异常并重试。只需捕获异常或服务器繁忙时发生的任何事情,然后重试操作直到成功。但是,这正是 SDK 在幕后所做的,您自己执行此操作不会自动转移到有害队列功能。

除非函数不能设计成可重入的,否则我建议让 SDK 来做重试工作。如果您仍然决定自己处理它,代码可能如下所示:

public static void WebJobFunction([QueueTrigger("temp")] string message)
{
int retriesLeft= 5;

while(true)
{
try
{
--retriesLeft;
DoServerOperation(message);
break;

}
catch(TimeoutException)
{
if (retriesLeft == 0)
{
throw;
}
}
}
}

关于azure-webjobs - Azure Webjobs SDK 和队列处理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26708146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com