来自Azure存储队列的失败Web作业未写入到Poison Queue

时间:2019-06-17 01:17:57

标签: c# azure azure-queues

我有一个Azure Web作业,它通过处理Azure存储队列上的新项目来工作。可以了 我已将MaxDequeueCount设置为一个较小的数字,并且一旦队列触发的操作失败多次,我希望该队列上的该项被移至有毒队列。

但是,这没有发生。该项目已从队列中删除,并且没有任何毒物队列,也没有任何毒物队列中的此消息。这是怎么回事,因为我不知道将消息“推送”到中毒队列所需的任何其他步骤。

 public static async Task ProcessQueueMessage([QueueTrigger("myQueue")] CloudQueueMessage message, TextWriter log)
    {
        try
        {
            throw new InvalidCastException();          
        }
        catch (Exception exception)
        {
            log.WriteLine($"Exception in ProcessQueueMessage: {exception}");
            throw;
        }
    }

1 个答案:

答案 0 :(得分:0)

仅当存在未处理的异常时,消息才会移至中毒队列。不会出现try-catch错误。 您可以做的是在“捕获”部分中将消息手动移至中毒队列。