Azure 队列 - 功能 - 消息可见性 - 工作人员?

2023-12-30

我对 Azure 队列、函数和工作线程的功能有一些疑问。我不太确定这是如何运作的。

设想:

  • q-notifications 是 Azure 存储帐户中的队列。
  • f-process-notification 是 Azure 中绑定到 q-notifications 的函数。它的工作是获取队列中的第一条消息并对其进行处理。

理论上,当消息添加到 q-notifications 时,应该调用函数 f-process-notification。

问题:

  1. 触发功能是否可以取代工人的需要?换句话说,每次将消息放入队列时都会调用 f-process-notification。

  2. 假设我将一条消息放入可见性超时为 5 分钟的队列中。基本上我正在对消息进行排队,但直到 5 分钟过去后才应执行该消息。当消息放入队列时,队列是否立即触发 f-process-notification,还是仅在消息可见时(即放入队列后 5 分钟)才触发 f-process-notification?


在 Azure Functions 中,运行队列触发函数的每个 Function App 实例都将拥有自己的目标队列侦听器。它使用指数退避策略监视队列中的新工作。当新项目添加到队列时,侦听器将从队列中拉出多个项目(批处理行为是可配置的),然后调度在平行下到你的函数。如果您的函数成功,则消息将被删除,否则它将保留在队列中以供重新处理。回答你的问题 - 是的,我们尊重任何可见性超时你指定。如果添加的消息有 5 分钟超时,则只有在 5 分钟超时后才会对其进行处理。

关于横向扩展 - 当您的 Function App 的 N 个实例正在运行时,它们都会合作处理队列。每个队列侦听器都会独立地从队列中拉出一批消息进行处理。实际上,工作将在 N 个实例之间进行负载平衡。正是您想要的:) Azure Functions 正在幕后为您实现多个消费者/工作人员模式的所有复杂性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 队列 - 功能 - 消息可见性 - 工作人员? 的相关文章

随机推荐