2015-11-01 93 views
0

我们正在使用Webjob最新的SDK作为我们的Web作业,我们看到奇怪的行为,一段时间我们的队列消息去毒队列而不是实际的队列。我也没有在webjob仪表板中发现任何错误。有没有人遇到过这样的问题。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); 
    } 

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

回答

1

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

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

+0

嗨马修,我没有看到任何错误消息在webjob仪表板。有时候,我看到消息被正确拾取。任何线索都可以解决这类问题。 – user145610