首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >记录Web API调用MVC 4

记录Web API调用MVC 4
EN

Stack Overflow用户
提问于 2013-03-30 17:14:26
回答 1查看 222关注 0票数 1

我需要将对Web API的每次调用都记录到数据库中。当然,我不想在每次调用时都访问我的数据库。

因此,假设我的缓存中有一个字典或哈希表对象,并且每10000条记录我都会访问数据库。

我仍然不希望每10000个用户都要等待这个操作。我不能为长时间的操作启动一个不同的线程,因为应用程序池基本上随时都可以回收。

此场景的最佳解决方案是什么?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-30 17:20:43

我认为你对耐久性的看法是相当不一致的。由于应用程序池回收或服务器崩溃,您的10000个对象的缓存也可能在任何时候丢失。

但是对于最初的问题,如何在不导致用户等待的情况下执行大型操作:

  • 对应用程序池回收设置了限制,并处理潜在的data loss.
  • Periodically将缓存的消息转储到服务以进行进一步处理。这仍然不能100%保证保留数据,例如,服务/服务器可能会崩溃。
    • 使用消息队列(MSMQ) possibly with WCF。消息队列可以持久存储在磁盘上,因此可以认为这是相当可靠的。

消息队列(MSMQ)技术使在不同时间运行的应用程序能够跨可能暂时脱机的异构网络和系统进行通信。应用程序将消息发送到队列,并从队列读取消息。

消息队列提供了有保证的消息传递、有效的路由、安全性和基于优先级的消息传递。它可用于实现高性能异步和同步场景的解决方案。

更进一步..。

根据您的需求和/或环境,您可能会消除缓存,并立即(快速)将所有消息写入消息队列,而不必担心性能损失或大型写入操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15716870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档