加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 使用数据库或MSMQ进行排队?

发布时间:2020-12-16 07:15:05 所属栏目:asp.Net 来源:网络整理
导读:我正在研究的应用程序的一部分是一个swf,它显示了一个包含80个问题的测试.每个问题都通过WebORB和ASP.NET保存在SQL Server中. 如果候选人完成测试,则需要验证会话.问题是有时350名候选人在同一时间完成测试,并且Web服务器和SQL Server上的CPU爆炸(同时进行35
我正在研究的应用程序的一部分是一个swf,它显示了一个包含80个问题的测试.每个问题都通过WebORB和ASP.NET保存在SQL Server中.

如果候选人完成测试,则需要验证会话.问题是有时350名候选人在同一时间完成测试,并且Web服务器和SQL Server上的CPU爆炸(同时进行350次验证).

现在,我该如何在这里实施排队?在数据库中,有一个表,其中包含每个会话的记录.一栏保持状态. 1完成,2验证.

我可以通过两种方式实现排队(正如我所看到的,也许你有其他命题):

>检查表中状态为1的记录的进程.如果找到,则验证会话.因此,会话一个接一个地验证.
>如果候选者完成其会话,则会向MSMQ队列发送一条消息.另一个进程侦听队列并逐个验证会话.

现在:

>什么是最好的方法?
>您从哪里开始验证会话的过程?在你的global.asax(application_start)中?作为Windows服务?作为在application_start中启动的网站的根目录下的exe?

对我来说,使用表格并查找状态为1的记录似乎是最简单的方法.

解决方法

MSMQ从验证逻辑服务和数据库中获取 decouples面向Web的应用程序.

这带来了许多优点,其中一些优点:

>处理验证逻辑每秒可处理5个会话并且一次收到300个会话的情况会更容易.否则你将不得不处理复制超时,重新尝试等.>在验证服务上进行维护会更容易,而不必中断应用程序的其余部分.当验证服务被关闭时,消息将在MSMQ中排队,并且一旦启动就会再次处理.>以上同样适用于数据库维护.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读