我面临的情况如下:
每个用户都可以单击一个按钮并输入一个名为"等待室"的队列。一旦该队列中有n个用户,则应将这n个用户组合在一起并从该队列中弹出。
我的实施:
我使用了一个包含ruby集的非持久性user_id
来实现此目的。 WordConstants
可以添加到集合中。当用户按顺序进入队列时,它可以正常工作。
可能出现的问题:
如果网站负载很重,例如1000(> n)用户同时进入队列,我恐怕会发生不好的事情(就像有些用户绑定到多个组并弹出多个用户一样)次)。我不知道Rails是否有一些内部机制来阻止这种情况,或者它取决于我选择的数据结构。 我想要像网络浏览器那样的事件队列。也就是说,事件可以同时进入,但只能逐个处理。我该如何确保?
测试:
如何编写RSpec测试来模拟重载情景?