God*_*ers 3 visibility azure-storage-queues azure-functions
我对有关Azure队列,函数和工作器的功能有一些疑问。我不确定这是如何工作的。
场景:
理论上,当将消息添加到q通知时,应调用f-process-notification函数。
问题:
触发功能是否取代了需要工人的需求?换句话说,每当一条消息放入队列时,都会调用f-process-notification。
假设我在可见性超时为5分钟的队列中放置了一条消息。基本上,我正在对消息进行排队,但是直到5分钟后才应采取行动。队列是在将消息放入队列时立即触发f-process-notification还是仅在消息变为可见时(即,将消息放入队列后5分钟)才触发f-process-notification?
在Azure Functions中,每个运行您的队列触发函数的Function App实例都将拥有自己的目标队列侦听器。它使用指数退避策略监视队列中的新工作。当新的项目添加到队列中的听众将拉动多个项目从队列(批处理行为是可配置),然后分派并行给你的函数。如果您的功能成功,则该消息将被删除,否则它将保留在队列中以进行重新处理。要回答您的问题-是的,我们尊重您指定的可见性超时。如果添加了5分钟超时的消息,则只会在此之后进行处理。
关于横向扩展-当您的Function App的N个实例正在运行时,它们将全部协同处理队列。每个队列侦听器将独立地从队列中提取成批消息以进行处理。实际上,将在N个实例之间平衡工作。正是您想要的:) Azure Functions正在幕后为您实现多重消费者/工人模式的所有复杂性。
| 归档时间: |
|
| 查看次数: |
477 次 |
| 最近记录: |