【发布时间】:2022-11-06 20:38:55
【问题描述】:
有什么方法可以限制 azure web app (asp.net web API) 的请求数量? 我有一个运行很长时间的端点,我喜欢在应用程序处理一个请求时避免多个触发器。
谢谢
【问题讨论】:
标签: asp.net-web-api azure-web-app-service
有什么方法可以限制 azure web app (asp.net web API) 的请求数量? 我有一个运行很长时间的端点,我喜欢在应用程序处理一个请求时避免多个触发器。
谢谢
【问题讨论】:
标签: asp.net-web-api azure-web-app-service
这必须是一个自定义实现,可以通过几种方式完成
1. 利用队列这涉及通过使用队列将后台进程分离为单独的执行流。因此,您的代码将分为两部分
第二种方法可以在同一个 Web App 中,也可以分成一个 Function App。队列可能位于 Azure Service Bus,您的 Web 应用程序或函数将在其中监听。
这种方法具有持久性的额外好处,因为如果 Web 应用程序或功能崩溃并且您希望确保所有请求都得到处理,如果消息未在队列中完成,则将按顺序再次处理。
2.分布式锁这种方法更简单,但缺乏持久性。在这里,您只需使用内存中的队列来处理请求,但要确保一次只处理一个请求,但让该方法获取一个锁,随后的请求将在处理之前等待该锁。
您可以利用blob storage leases 作为分布式锁的一个选项。
【讨论】: