我正在为一家小型诊所编写队列管理系统。会有多个用户尝试做同样的事情,所以这是一个并发问题。我熟悉 ACID 保证,也了解交易的概念。我知道两个人不能同时更改相同的数据。
但这是我的问题:我有一个PHP
函数isFree($time)
可以确定特定医生在那段时间是否有空。恐怕如果两个用户都尝试调用相同的函数,他们都可能会得到肯定的结果并将事情搞砸,所以我需要以某种方式将并发用户排队,或者只接受一个。
解决这个问题的最简单方法是限制我的函数一次只能调用一个。我可能需要某种标志或阻塞系统,但我不知道该怎么做。
或者另一方面,只限制那些可能重叠的函数调用会更快。例如isFree($time)
周一和周二同时调用函数不会造成任何问题。