首页新闻找找看学习计划

C# 列队上传信息

0
悬赏园豆:10 [已解决问题] 解决于 2017-06-15 18:39

C# Winfrom 程序,前端 不断产生数据,这些数据需要实时上传到服务器,如果是同一线程处理的话,需要等待上传完成之后再次生成数据,速度慢。严重影响效率。我是这样想的,能不能把产生数据与上传数据分开???且不会漏掉数据

久久婷婷的主页 久久婷婷 | 初学一级 | 园豆:30
提问于:2017-03-15 17:47
< >
分享
最佳答案
0

对于高并发情况,可以采用消息队列缓冲机制。就跟火车站进站过程一样,把这一过程比作一个系统,我们会经常看到U型或者S型缓冲区,排队和进站检查过程分开执行,避免了大家一窝蜂涌入进站检查口导致这个进站的整个系统瘫痪或者效率低。产生的数据都在同一个入口进入服务器,可以把这些数据扔进队列中,上传数据时就从队列中取数据,数据生产和数据消费分开执行的。

收获园豆:10
~扎克伯格 | 小虾三级 |园豆:1799 | 2017-03-16 09:30
其他回答(5)
1

消息队列啊.

吴瑞祥 | 园豆:28734 (高人七级) | 2017-03-15 18:19

支持(0) 反对(0) 久久婷婷 | 园豆:30 (初学一级) | 2017-03-15 19:29
0

可以把产生数据与上传数据分开.产生数据.写入时间-文本.上传数据.每隔一段时间.读取多个时间-文本.进行上传.

forhells | 园豆:969 (小虾三级) | 2017-03-16 08:13
0

http://www.tuicool.com/articles/B7BjM3B  我想这篇文章有助于你,ConcurrentQueue     比较适合你

pengbg | 园豆:13 (初学一级) | 2017-03-16 17:36
0

构建数据结构,前端生产的数据存储在对应的内存数据结构中。再开启线程,去从数据结构中抓取数据推送到服务器。实现存取分离

hahanonym | 园豆:1453 (小虾三级) | 2017-03-20 14:01
0

建议使用消息队列,如RabbitMq;或者你可以尝试使用异步 Task.Run() 等能否解决当前问题

http://www.cnblogs.com/liqingwen/p/6412089.html

反骨仔 | 园豆:444 (菜鸟二级) | 2017-04-04 17:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册