2017-06-20 82 views
0

我有一个Azure WebJob,我使用CloudQueue与它通信。 从我的Web应用程序:Azure无法将消息添加到队列

logger.Info("Writing Conversion Request to Document Queue " + JsonConvert.SerializeObject(blobInfo));                        
var queueMessage = new CloudQueueMessage(JsonConvert.SerializeObject(blobInfo));                        
documentQueue.AddMessage(queueMessage); 

我核实,我看到被写入的信息陈述我的日志文件。

然而,当我去我的队列:

enter image description here

什么令我感到困惑,甚至更多......这队列已满的消息之前,包括今天晚上的时间戳。

我去了并清除了我的队列,并在清除它之后,它将不再接收消息。

有没有人见过这个?

+0

两件事:1)WebJob可能已经完全处理了这个消息,并且2)使用其他工具(例如Microsoft的存储浏览器)来验证队列的内容。 –

+0

@GauravMantri未处理的消息...我在WebJob中调试器连接/断点。 2.谢谢我会下载并安装这个。 –

+0

@GauravMantri好吧,我会咬人的......我下载了Microsoft存储资源管理器,我的所有消息都在'文件 - poision'中。有任何想法吗? –

回答

2

由于Gaurav Mantri在评论中提到消息应该由WebJob处理。当它达到最大尝试次数时,将被移至毒性队列。

我们也可以从azure官方tutorials获得更多有关毒讯的详细信息。以下是tutorials的片段。

其内容导致功能失败的消息被称为有害消息。当函数失败时,队列消息不会被删除并最终被再次拾取,导致循环被重复。 SDK可以在有限次数的迭代后自动中断循环,也可以手动完成。

SDK将最多调用5次函数来处理队列消息。如果第五次尝试失败,该消息将被移至毒性队列The maximum number of retries is configurable