如何在ASP.Net WebSite中处理并发? (拍卖网站)

时间:2009-11-26 12:58:33

标签: asp.net

我的问题如下:

我有一个拍卖师网站,其中许多不同的对象将被拍卖。

我的问题非常简单,以便更加体验用户我瘦身。如何在不打开网站的情况下处理业务和数据库逻辑?

我的问题是直接说,如果3个晚上没有用户在网站上,则必须设置获胜者(例如) - 如果页面是否打开。

所以我需要某种“每2秒,做这个方法” - 没有打开网站。

我的想法是一个单独的应用程序,它使用与asp.net页面相同的业务和数据库层,并让它在服务器上运行。这是一个好主意还是坏主意?

2 个答案:

答案 0 :(得分:1)

单独的流程(预定的应用程序或Windows服务)是您实现此目标的唯一可靠方法。

使用相同的BLL和DAL也是正确的做法。

查看有关Windows服务http://msdn.microsoft.com/en-us/library/aa984074(VS.71).aspx

的这篇文章

答案 1 :(得分:0)

让每个用户每2秒查询一次数据库会在您的网站上创建不必要的流量,这不是一个好主意。 (用户倾向于在拍卖结束之前多次刷新页面)

我的想法: 关闭时为拍卖添加日期。 最后一个出价的用户始终是赢家,您不能在凌晨3点(拍卖结束之日)之后出价,所以如果您在凌晨3点之后访问该网站(您无法出价)显示获胜用户。如果有人在凌晨3点之前打开网站并在凌晨3点之后出价,那么您的业务逻辑应该检查出价日期并拒绝它。(另外:用户可能住在不同的时区,因此请考虑在您的网站上显示服务器时间) 。 将日期设置为“现在”将立即关闭拍卖。

如果您的时钟超过了小时或类似的时间,您还可以添加javascript来刷新页面。 (或使用setTimeout函数或metarefresh中拍卖结束前剩余的秒数)