似乎新的azure SDK将visibilitytimeout扩展到< = 7天。我知道默认情况下,当我向azure队列添加消息时,实时时间是7天。当我收到消息时,将visibilitytimeout设置为7天。这是否意味着如果我不关心消息可靠,我不需要删除此消息?该消息将在7天后消失。
我想采取这种方式,因为DeleteMessage非常慢。如果我不删除邮件,它是否对GetMessage的性能有任何影响?
答案 0 :(得分:1)
根据Get Messages
的文档,我相信肯定可以将VisibilityTimeout
期限设置为7天,这样邮件只能获取一次。但是,我发现这种方法存在一些问题,而不仅仅是在完成该过程后删除消息:
Approximate Messages Count
属性来检查队列中的消息执行的进程的运行状况。请注意,即使您隐藏了消息,它仍然在队列中,因此将包含在队列中的总消息数中。因此,如果您正在构建一个依赖于此进行运行状况检查的系统,您将始终发现您的系统不健康,因为您永远不会删除这些消息。我很想知道为什么你发现删除邮件非常慢。根据我的经验,这是非常快的。你是如何监控消息删除的?
答案 1 :(得分:0)
我认为你应该深入理解为什么删除速度很慢,而不是解决这个问题。您是否已启用日志并查看所有队列操作中的e2elatency和serverlatency数字。理想情况下,您不应该在所有队列操作中看到两者之间的巨大差异。如果您确实看到了很大的差异,那么它意味着客户端上发生了一些您应该进一步调查的事情。
有关日志记录的更多信息,请查看以下文章: http://blogs.msdn.com/b/windowsazurestorage/archive/tags/analytics+2d00+logging+_2600_amp_3b00_+metrics/ http://msdn.microsoft.com/en-us/library/azure/hh343262.aspx
有关客户端日志记录的信息也可以在这篇文章中找到:e客户端日志记录 - 您可以在此博客文章中了解更多信息。 http://blogs.msdn.com/b/windowsazurestorage/archive/2013/09/07/announcing-storage-client-library-2-1-rtm.aspx
请让我知道你的发现。
杰森