实施在线候诊室

saa*_*lon 6 queue ruby-on-rails web

我的组织正在构建我们的票务网站的新版本,并且正在寻找在我们的购买路径中的用户数量超过特定限制时建立在线候机室的最佳方式.此队列的最佳版本将允许新用户在现有用户完成购买后或在输入路径后超过超时限制.

我试图了解其他组织如何实施这一点.有人在那里做过类似的事情或有过这方面的经验吗?我们有一些想法,但我想了解已经尝试了哪些解决方案以及这些解决方案遇到了哪些问题.

为了完整,这个网站正在Ruby on Rails中构建,尽管我很想知道人们如何解决这个问题,无论平台如何.

编辑:澄清:对队列的需求主要不是为了减少负载,而是为了限制网络购买门票的速度相对于以其他方式购买的人,例如通过电话.

Ste*_*sen 7

在我概述一种方法之前,我想指出你想要做的事情没有多大意义.网上的服务不像实体店,我可以走在那里,看到它拥挤,决定留下与否.在您的网站上排队的人会把我的责任转移给我(无法或不愿意充分配置资源)给我(惩罚我试图使用您的网站).

如果您销售的是演出门票,数量有限以及每个项目都与座位相关联,我认为如果没有及时付款,最好预订项目并超时预订.Ticketmaster做到了这一点,我认为这比阻止门口的人更好.

如果你仍然想沿着这条路走下去,那么我就像这样设计系统:

当客户来到您的网站时,记录他们的到达时间.当他们与网站互动时,记录"最后一次"的时间."上次见过"将用于确定活跃度.您需要非常频繁地运行后台作业才能快速过期.

一旦达到限制,您就会有一个被阻止的有序队列.当客户完成交易或超时时,您将标记队列中的下一个人进入购买路径.

对于排队用户,他们的浏览器会定期发出请求,检查您是否已让他们进入.如果是,他们将进入购买路径.如果不是,他们会继续等待.

购买路径需要一种机制来检查是否有人试图规避您的等候区域并将其发回.