0

我们正在为我们的 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);
    }

我没有发现代码问题,但不确定为什么消息会自动重定向到毒队列而不是实际队列。

4

1 回答 1

1

如果消息处理失败的次数大于通过 JobHostQueuesConfiguration.MaxDequeueCount 配置的重试次数,SDK 只会将消息移动到中毒队列。检查消息详细信息 - 可能是消息正文未能反序列化为您的参数 POCO 类型。

此外,请重新检查您的仪表板 - 每次功能失败时,您都会收到一个包含详细信息的“失败”条目。我自己验证了这一点,在函数失败的情况下,因为消息反序列化失败。

于 2015-11-02T23:36:35.620 回答