azure队列触发功能从两个不同的队列拉取

问题描述 投票:0回答:2

如何让单个 azure 队列触发函数连接到两个不同的队列。

有两个这样的绑定似乎会破坏它:

{
  "disabled": false,
  "bindings": [
    {
      "type": "queueTrigger",
      "direction": "in",
      "name": "theQueueItem",
      "queueName": "main",
      "connection": "QUEUE_CONNECTION_STRING"
    },
    {
      "type": "queueTrigger",
      "direction": "in",
      "name": "theQueueItem",
      "queueName": "priority",
      "connection": "QUEUE_CONNECTION_STRING"
    },
    {
      "name": "starter",
      "type": "durableClient",
      "direction": "in"
    }
  ]
}

如果可能的话,我希望一个队列优先于另一个队列。这样,如果

main
为空,
priority
只会将作业发送到函数,否则它将从
priority
获取作业,直到空为止。

javascript node.js azure azure-functions azure-storage-queues
2个回答
1
投票

您无法为单个队列触发功能放置多个输入绑定队列,但您可以为同一个队列触发功能使用多个输出绑定。

enter image description here

enter image description here

我相信该函数针对单个指定的队列消息运行,而不是使用消息数组作为输出绑定对象同时针对多个队列消息运行。

我们还可以从同一个队列中获取多条消息。

请参阅 Azure Functions 绑定示例的 SO ThreadMS Doc 了解更多信息。


0
投票

一种解决方案是创建两个额外的近乎微不足道的 Azure 函数,每个函数都由当前队列之一触发,触发时,它只是将消息复制到第三个公共队列。

新的公共队列将触发原始函数,因此它将从任一队列触发。

但是我不知道如何处理无序的排队消息(即,无法确定优先级。)

© www.soinside.com 2019 - 2024. All rights reserved.