【问题标题】:How to set visibility (time) option for azure queue using azure sdk (using azure webjobs)?如何使用 azure sdk(使用 azure webjobs)为 azure queue 设置可见性(时间)选项?
【发布时间】:2015-03-08 17:06:00
【问题描述】:

我在 azure webjobs(控制台应用程序)中的功能正在正确完成工作并从队列中抓取消息,但我需要一种方法来控制“时间可见”选项或能够从队列中删除消息被捡起来。

功能:

public class Functions
{
    public static void MultipleOutput([QueueTrigger("messages")] MessageQueueItem message, TextWriter log)
    {
        Console.WriteLine("Item Found [{0}]! Process starting", message.VideoId);

        ResolverAgent agent = new ResolverAgent(message);
        agent.Process();
    }
}

我知道,当您以编程方式访问队列时,它是您传入的参数。但是我没有以这种方式访问​​它。在 webjobs 应用程序中使用 azure sdk 的正确方法是什么?

编辑:

可见性选项是从作业从队列中获取消息到消息重新出现在队列中的时间(因为该过程尚未完成并假定它失败)。就我而言,默认的 30 秒不足以让进程一直运行。

参考(部分:如何:利用其他选项使消息出队): http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-queues/

【问题讨论】:

  • “时间可见”是什么意思?能否详细说明您要达到的目标?
  • 编辑了解更多信息

标签: azure-webjobs azure-webjobssdk azure-storage-queues


【解决方案1】:

您的函数是否仍在处理消息,webjobs SDK 将更新租约,因此另一个函数不会接收它。

【讨论】:

  • 那么就不需要设置visbilitytimeout那么对了吗?
  • 我不认为维克多是正确的。我测试了这个案例,消息将再次可见,并且一个新功能将接收它。您必须自己更新消息可见时间。还有:“这保存了与消息相关的工作状态,并给客户一分钟时间继续处理消息。”来自此链接:azure.microsoft.com/en-us/documentation/articles/…
  • @AlexYang 我认为您链接到的文章仅讨论了“传统”(如果 Azure 中有这样的事情)方式使用队列。使用 WebJobs,您不需要自己实现该代码。下面的文章很好地描述了基础知识,并提供了代码示例,展示了如何实现对队列的额外控制:azure.microsoft.com/en-us/documentation/articles/…
猜你喜欢
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 2021-04-20
  • 2018-09-21
  • 1970-01-01
  • 2018-08-07
  • 1970-01-01
  • 2020-11-07
相关资源
最近更新 更多