1
我正在开发一个流量很大的呼叫中心IVR系统。我想给每个来电者一个随机的免费代表聊天。MySQL块选择/读取特定行
我现在做的是:
SELECT admin FROM admins WHERE live = 1 AND available = 1 ORDER BY RAND() LIMIT 1
后,我获得免费的代表,我向他汇报不可用像这样:
UPDATE admins SET available = 0 WHERE admin = XXX
测试之后,我发现比呼叫者有时结束如果他们几乎在同一时间打电话,同时与同一位代表联系。
我已经尝试在选择查询中添加“FOR UPDATE”,但它并不真正帮助锁定选择行。
任何想法如何接近这个问题?