求教jFinal的高并发场景解决方案

新加入的用户会先从数据库中查询两个排队等待的用户,如果查到了则三个人匹配为一组,否则将当前用户在数据库中标记为排队等待状态。

高并发情况下,如何保证同一个用户不会被匹配到两个组内?


评论区

宋人无本奏

2019-01-02 15:09

一看就是组团啊666

杜福忠

2019-01-02 16:39

如果是我设计的话:
1先让用户进行“加入”,标记为未组团。返回给前端为“组团中。。。”
2通过定时任务解析未组团的用户分页信息,一页一线程任务,本页用户按规则3人进行分组。
3通过短信或者站内信微信邮件等方式告知组队信息,前端轮询也可以

nbjgl

2019-01-02 18:11

@宋人无本奏 错了,是斗地主,^_^

nbjgl

2019-01-02 18:11

@杜福忠 这个思路不错,只是JFinal定时任务只能精确到分钟,这个是实时在线游戏,不能等一分钟吧……

杜福忠

2019-01-03 09:36

@nbjgl 比如写个独立线程 一直循环处理呗,不一定非得用某个插件, 或者写法, 根据实际情况来呗, 主要是提供一个处理方案和思路, 不要被某个具体东西束缚你的思维

宋人无本奏

2019-01-03 09:57

@nbjgl 兄弟,你给我说斗地主!!!!

lgk_l

2019-01-08 16:51

加个乐观锁即可

shenyao

2019-01-08 17:14

countdownlatch。不过仅适用于一个jvm的情况,多个jvm就要考虑redis加锁了

热门反馈

扫码入社