gpt4 book ai didi

azure - 使用 QueueBackgroundWorkItem 进行事件中心发送数据操作是个好主意吗?

转载 作者:行者123 更新时间:2023-12-02 01:20:13 25 4
gpt4 key购买 nike

我有一个 wep api,每秒收到超过 100 个请求,并且需要快速回复。

每个请求中有两个主要工作:

  • 从缓存中获取答案并将其返回给用户
  • 将结果发送到事件中心(进行一些每小时计算)

API 调用者对第二部分不感兴趣。因此任何错误和缓慢、超时都不应该改变我的响应时间。

我的问题:

  1. 那么应该如何实现呢?

  2. 我可以使用“HostingEnvironment.QueueBackgroundWorkItem”吗? 后台工作?您有什么建议?

  3. 使用事件中心发送方法的异步版本可以更改任何内容吗 关于可能实现的可扩展性和性能?

最佳答案

您可以将结果放入队列中,并让后台进程按照自己的速度读取该队列。这允许您将结果分组在一起并使用批处理将它们发送到事件中心。请参阅https://azure.microsoft.com/en-us/documentation/articles/event-hubs-programming-guide/#batch-event-send-operations .

只要读取项目的进程是分开的,将项目放入某种队列中应该非常快并且安全。作为奖励,当网络应用程序失败/停止时,任何事件都不会丢失而是存储在队列中。您可以将 Azure 存储队列 ( https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-queues/ ) 与简单的 Web 作业或 Azure Function ( https://azure.microsoft.com/en-us/documentation/articles/functions-bindings-storage/ ) 结合使用来处理事件。

请参阅这篇较旧的文章 http://blog.stephencleary.com/2014/06/fire-and-forget-on-asp-net.html有关为什么此设置而不是使用 QueueBackgroundWorkItem 选项的更多背景信息以及更多阅读 Material 的答案:Web Api - Fire and Forget .

关于azure - 使用 QueueBackgroundWorkItem 进行事件中心发送数据操作是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40568265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com