在同一时间只能同一人访问的操作 最初想到用数据库锁的方式解决,但是无奈涉及到的表太多 不知道php有什么办法防止并发,类似于等待的程序
可以使用文件锁,参考php的flock函数。
其实加数据表的锁也一样。本质上是提供一个屏障,每次访问的时候都需要 先 通过这个屏障。
也可以把业务分离出来, 扔给消息队列去顺序处理
使用文件锁的话,如果webserver有多台,也有可能会出现并发情况
可以考虑在redis中置一个标志位来搞定
用redis吧
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
7 回答10.6k 阅读✓ 已解决
3 回答4.6k 阅读✓ 已解决
2 回答566 阅读✓ 已解决
19 回答27.8k 阅读
16 回答14.3k 阅读✓ 已解决
可以使用文件锁,参考php的flock函数。
其实加数据表的锁也一样。本质上是提供一个屏障,每次访问的时候都需要 先 通过这个屏障。