我们有10个非正规化表,其中许多表包含大量数据(11,000,000)。客户端希望用户能够一次下载多达100K条记录。我想知道的是如何设计一个后台进程来处理这个问题。我在考虑可能为每个表设置一个队列,并让多个线程处理请求。我绝对不是设计多线程组件的专家。你们觉得我说对了吗?对实施有什么建议吗?
谢谢!
发布于 2010-12-06 23:25:37
设计场景
1-由于这是一个Asp.Net应用程序,有多少并发用户将下载数据?
2-你是否在考虑在你的应用程序中提供下载数据的功能,你有没有考虑过进程再循环?
3-如果用户会话过期但下载仍在进行中怎么办?
4-你可能正在转向一个流媒体服务器。
我认为,你应该首先考虑这些场景,然后再决定实际需要哪种类型的应用程序。
在我的脑海里
我认为,你应该考虑创建一个基于windows的解决方案,它将被下载到客户端计算机,并利用客户端资源(线程等)连接到服务器,并且您的服务器必须支持流。
发布于 2010-12-07 00:04:47
用户是进行自定义查询,还是只下载表的“块”?
如果是后者,那么为什么不提前为每个块生成CSV呢?如果每个块有100,000条记录,而表总共只有11,000,000条记录,那么只需要110个块。
发布于 2010-12-07 02:18:57
我认为这是一种方法。
您可以调用另一个页面,并将流程放入下一页面。
下面的文章可能会对你有所帮助。
http://codebetter.com/blogs/peter.van.ooijen/archive/2006/06/20/146582.aspx
https://stackoverflow.com/questions/4367799
复制相似问题