我目前使用Azure webjobs处理来自Azure队列的请求。一天,一个Web作业最多可以处理来自队列的5,000条消息。每封邮件的处理时间最长为 20秒。网络作业一直在监听队列中是否有新消息。到达后,选择邮件并进行处理。
我已经阅读了有关功能应用程序的信息,并且由于它们支持自动缩放和更友好的定价,因此我想选择它们,但是我目前无法做出是否选择它们的明智决定。
我主要关心的是工作负荷的影响。如果队列触发的功能应用在20秒内仍在处理一条消息,而其他50条消息仍在队列中,因为它仍在处理第一条消息。它会先等待第一条消息完成,然后再处理第二条消息,还是创建同一功能应用程序的另一个节点/实例来处理第二条消息和第三条....第50条消息?
如果它创建了功能应用程序的多个实例,这些新创建的实例是否具有可利用的最多资源,例如最多可使用6个处理器和5GB RAM,或者它们是否可扩展到云中的可用资源?
答案 0 :(得分:0)
假设“自动扩展和更友好的定价”意味着您正在查看消费计划,那么扩展的确取决于云中的可用资源。您可以配置一个函数一次将提取队列中的消息数量,但是函数并非单例,因此,如果运行时检测到队列增长,则它将触发它认为需要处理的所有实例的尽可能多的函数实例。消息。