我的想法是,我可以启动一个事务,使用一个锁,尝试更新行,看看它是否有一个锁的错误。然而,我在锁期间的尝试似乎只是让MySQL在更新之前等待锁的结束。有什么方法可以通过MySQL实现我的目标吗?
我应该注意到,实际上,我将在桌面上为claimed=0 ORDER BY RAND() LIMIT 1所做的事情做一个D2。使用id=1进行示例测试是为了简化测试:)
我只是想知道mysql "SELECT FOR UPDATE“锁会阻塞进程中的所有线程,以及如果我需要在多线程应用程序中授予这个锁,如何传递它。为了简单起见,我只给出了一个简单的ruby测试代码: db = Sequel.connect("mysql://abcd:abcd@localhost:3306update"].first
10.times { |t| p 'babababa'