我需要将对Web API的每次调用都记录到数据库中。当然,我不想在每次调用时都访问我的数据库。
因此,假设我的缓存中有一个字典或哈希表对象,并且每10000条记录我都会访问数据库。
我仍然不希望每10000个用户都要等待这个操作。我不能为长时间的操作启动一个不同的线程,因为应用程序池基本上随时都可以回收。
此场景的最佳解决方案是什么?
谢谢
发布于 2013-03-30 17:20:43
我认为你对耐久性的看法是相当不一致的。由于应用程序池回收或服务器崩溃,您的10000个对象的缓存也可能在任何时候丢失。
但是对于最初的问题,如何在不导致用户等待的情况下执行大型操作:
消息队列(MSMQ)技术使在不同时间运行的应用程序能够跨可能暂时脱机的异构网络和系统进行通信。应用程序将消息发送到队列,并从队列读取消息。
消息队列提供了有保证的消息传递、有效的路由、安全性和基于优先级的消息传递。它可用于实现高性能异步和同步场景的解决方案。
更进一步..。
根据您的需求和/或环境,您可能会消除缓存,并立即(快速)将所有消息写入消息队列,而不必担心性能损失或大型写入操作。
https://stackoverflow.com/questions/15716870
复制相似问题