我们正在为我们的Web作业使用Webjob最新的SDK,我们看到奇怪的行为,有时我们的队列消息进入毒性队列而不是实际队列。我也没有在webjob仪表板中发现任何错误。有没有人遇到过这种问题。
public async static Task ProcessQueueMessage( [QueueTrigger("%QueueName%")] Parameter message, int dequeueCount, TextWriter log )
{
try
{
//read parameters
//perform db operation last for 2-5 mins
}
catch
{
}
}
public static void BindToPoisonQueue( [QueueTrigger("QueueName-poison")] parameter message, TextWriter log )
{
log.Write("Problem with message: " + message);
}
我没有发现代码问题,但不确定为什么邮件会自动重定向到毒性队列而不是实际队列。
答案 0 :(得分:1)
如果处理失败的次数大于通过JobHostQueuesConfiguration.MaxDequeueCount配置的重试次数,则SDK仅将消息移动到中毒队列。检查消息详细信息 - 可能是消息正文无法反序列化为参数POCO类型。
此外,请重新检查您的信息中心 - 每次功能失败时,您都会收到“失败”信息。进入细节。我自己验证了这一点,在函数失败的情况下,因为消息无法反序列化。