【发布时间】:2021-11-24 12:53:07
【问题描述】:
我正在制作一个小游戏,并使用 MySQL 作为数据库。由于多线程池,我在保存时遇到了一点问题。当我提交插入/删除时,比如添加或删除项目,不能保证它们按照提交的顺序完成。这最终会在一些罕见的情况下创建重复项。
例如,如果我添加和删除一个项目(插入、删除),通常没问题。但是,连续执行 3 次,它会提交 Insert、delete、insert、delete、insert、delete。但是偶尔可能会导致删除、插入、插入、删除、删除、插入。
在这种情况下,我可以确保单个查询链的正确方法是什么?我是否尝试在代码中组合查询?忘记池化连接并确保它是有序的?还有其他解决方案吗?
我目前正在使用 Twisted 和 MySQLdb:
pool = adbapi.ConnectionPool('MySQLdb', host=127.0.0.1, port=3306, user='..', passwd='..', db='testing')
d = pool.runOperation(query, args)
【问题讨论】: