0

上下文:我有一个 Azure 存储队列,用作队列触发函数的输入队列。因此,每当一条消息被添加到队列中时,某个函数 X 就会被触发并开始运行。我想测试消息是否已成功放入队列并被使用。如何仅从队列中执行此操作(假设我无法查看函数 X,并且无法更改队列触发函数的设置)?为了进一步分解这个问题:

  • 在队列触发函数将消息出列后,我在测试时是否仍可以从中读取该消息?如果是,我该如何访问它?
  • 由于这里存在竞争条件,如果我在队列触发器功能开始之前测试时将消息出列,这将如何干扰队列触发器的功能?是否可以在测试时将消息出列,但同时,队列触发器是否可以将其出列并触发我的函数 X 而不会受到任何干扰?
  • 最重要的是,我在 Azure 存储队列中有一条队列消息,我想从两个不同的源读取两次,这两个操作之间没有干扰。这可能并得到支持吗?如果是,我该怎么做?

谢谢!

4

1 回答 1

2

我认为您尝试执行此操作的方式行不通。您可以通过使用Peek Messages读取队列消息而不使它们出队来获得部分方式,但是如果函数在您之前收到消息,那么您将永远看不到它。

但是,您可能能够通过使用存储分析日志记录来跟踪队列活动,或使用服务总线主题而不是队列来获取所需的信息,以便您的消息可以有多个订阅者。

于 2018-10-09T21:26:30.090 回答