发一个商并发信息队列的疑问问题,做过了技术牛人,回答一下吧。。有理有分哈。。分不过了,都来看看吧,纠结很久了啦

xghabc 2014-12-10 03:51:07
如果,信息队列,我使的是,MSMQ。

其它还好啦,就是一个地方不满意。
比如一个请求进来了,我只能先写入队列,然后返回信息给前端,系统正在处理。
就算系统处理完成了,也不能通知到浏览器(使用什么HTTP轮询,就先不讨论了哈),只能是用户跳到订单列表内面,去查年,是否己成功处理。

我的意思是这样,能不能这样,先入队列之后,让程序等待一会,队列处理完了,发信息给程序,
或者,可以先返回信息给浏览器,系统正在处理,然后,队列处理完了,再返回信息给浏览器。

我看到别人的抢购也是这样,抢购之后,当时就显示抢购成功。虽然知道是用队列,但是,不知道,他们是怎么让队列处理完之后,返回信息给等待程序的。因为,队列的接收另一端在另一个服务器哦,接收端处理完了,再去处理另一个服务器的程序,这个。。这个不是这样处理的吧。。

求方案。

就这点分了,别嫌啊。。
...全文
189 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xghabc 2014-12-12
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
谁让你们使用 msmq 的?为什么要搞这个?
因为高并发,很用事务的话,隔离级别低的特多脏数据,隔离级别高了,资源容易抱死,死销,或者阻塞,效率非常持慢。一旦阻塞,程序过了等待时间,又报错返回
  • 打赏
  • 举报
回复
使用 asp.net signalr 吧 别问我这是什么,自己去看
於黾 2014-12-11
  • 打赏
  • 举报
回复
要么使用ajax轮询,要么就让界面假死一会,等服务线程接到反馈再回发 你想服务端主动推送,IE是不行了
xghabc 2014-12-11
  • 打赏
  • 举报
回复
引用 1 楼 soldierluo 的回复:
不知道是楼主说得不清楚,还是我理解力有问题,反正我看得不是很明白 楼主的意思是,前端提交了数据,但是服务器的处理需要一段时间,处理完后无法通知客户端? 如果是这样的话其实可以用js和iframe解决,js在客户端循环检查cookie标识来判断处理是否完成,iframe开启另一个请求到服务器来查询,处理完成了就更新cookie标识,然后由客户端的js来检查
不是,我是说,当你提交列队的时候,这个列队提交到别的服务器,在别的服务线程进行处理。并且,完成了,没法通知现在这个线程,现在这个线程,只能返回消息到浏览器,说,系统正在处理。 我的意思是,如果就是客户提交了最好在当前线程 返回处理结果,
  • 打赏
  • 举报
回复
引用 楼主 xghabc 的回复:
我的意思是这样,能不能这样,先入队列之后,让程序等待一会,队列处理完了,发信息给程序, 或者,可以先返回信息给浏览器,系统正在处理,然后,队列处理完了,再返回信息给浏览器。
这没有什么“能不能”的问题,是你“愿意不愿意做”的问题。程序应该是先有交互页面设计,然后才实现的。如果最初的界面设计做的就是“当时页面刷新时立刻显示结果”,那么不管你选择了如何浪费时间的异步“队列”去折腾,你都得阻塞你的aspx页面线程(例如 manualResetEvent1.WaiOne() 语句)等待有返回数据时才继续生成页面内容。 程序员不是做到哪里才想到哪里,而是应该去实现产品设计。所以程序员不能胡乱决定产品交互操作设计,程序员应该先实现用户要求的界面设计。
  • 打赏
  • 举报
回复
谁让你们使用 msmq 的?为什么要搞这个?
xghabc 2014-12-11
  • 打赏
  • 举报
回复
引用 4 楼 Mockqi 的回复:
使用 asp.net signalr 吧 别问我这是什么,自己去看
不是这个东东。。
soldierluo 2014-12-10
  • 打赏
  • 举报
回复
不知道是楼主说得不清楚,还是我理解力有问题,反正我看得不是很明白 楼主的意思是,前端提交了数据,但是服务器的处理需要一段时间,处理完后无法通知客户端? 如果是这样的话其实可以用js和iframe解决,js在客户端循环检查cookie标识来判断处理是否完成,iframe开启另一个请求到服务器来查询,处理完成了就更新cookie标识,然后由客户端的js来检查

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧