当您无法使确切的排队消息出队时,QueueTriggerAttribute 有什么好处?或者你可以吗?
What good is a QueueTriggerAttribute when you can't dequeue the exact queued message? Or can you?
我想了解一些有关 Azure Functions 的 QueueTriggerAttribute
用于队列存储的信息。我可以看到 QueueTriggerAttribute
允许我将 Azure 函数绑定到队列存储事件,以便在将新项目添加到队列时使用 - 我的函数调用该新消息的内容。
不过,这有什么用?
仍然无法使触发函数中的确切队列存储项目出列,对吧?您可以做的最好的事情就是从队列中弹出下一个可用项目,这可能不是触发函数的项目。
我猜理论上 1 次推送到队列存储会触发 1 次函数调用,您可以在其中进行 1 次弹出调用。所以在一天结束时,您仍然可以利用这些触发器来处理队列中的所有项目 - 只要没有中断或任何会导致触发器未处理的事情,导致项目卡在队列中。
我是不是漏掉了什么?我正在结合 Azure Functions 和 QueueTrigger 查看队列存储。我正在尝试将执行函数的队列驱动工作流概念化,但我觉得这似乎不正确 - 或者我不理解这里的某些内容。
你好像理解错了,但我不确定你的困惑是什么。
当您向队列发送 1 条消息时,侦听该队列的函数将触发,并且该消息的内容将作为输入参数传递给您编写的代码。
您的代码不需要也不应该 "pop" 显式地从队列中获取任何内容 - 这是由 Azure Functions 运行时在幕后完成的。一次调用将只处理那条消息,并会尽快退出。
看这段代码:
[FunctionName("QueueTrigger")]
public static void QueueTrigger(
[QueueTrigger("myqueue-items")] string myQueueItem,
TraceWriter log)
{
log.Info($"C# function processed: {myQueueItem}");
}
除属性外,没有任何代码适用于队列。它只是被触发,每条消息一次。
我想了解一些有关 Azure Functions 的 QueueTriggerAttribute
用于队列存储的信息。我可以看到 QueueTriggerAttribute
允许我将 Azure 函数绑定到队列存储事件,以便在将新项目添加到队列时使用 - 我的函数调用该新消息的内容。
不过,这有什么用?
仍然无法使触发函数中的确切队列存储项目出列,对吧?您可以做的最好的事情就是从队列中弹出下一个可用项目,这可能不是触发函数的项目。
我猜理论上 1 次推送到队列存储会触发 1 次函数调用,您可以在其中进行 1 次弹出调用。所以在一天结束时,您仍然可以利用这些触发器来处理队列中的所有项目 - 只要没有中断或任何会导致触发器未处理的事情,导致项目卡在队列中。
我是不是漏掉了什么?我正在结合 Azure Functions 和 QueueTrigger 查看队列存储。我正在尝试将执行函数的队列驱动工作流概念化,但我觉得这似乎不正确 - 或者我不理解这里的某些内容。
你好像理解错了,但我不确定你的困惑是什么。
当您向队列发送 1 条消息时,侦听该队列的函数将触发,并且该消息的内容将作为输入参数传递给您编写的代码。
您的代码不需要也不应该 "pop" 显式地从队列中获取任何内容 - 这是由 Azure Functions 运行时在幕后完成的。一次调用将只处理那条消息,并会尽快退出。
看这段代码:
[FunctionName("QueueTrigger")]
public static void QueueTrigger(
[QueueTrigger("myqueue-items")] string myQueueItem,
TraceWriter log)
{
log.Info($"C# function processed: {myQueueItem}");
}
除属性外,没有任何代码适用于队列。它只是被触发,每条消息一次。