我将doctrine2与symfony2结合使用。我对数据并发有问题。这是我的案子。
我为电子商务创建了一个网站。假设我有数量= 5的产品A。客户X同时购买4件产品A和客户Y同时购买2件产品A。对于客户X情况,原则将查询产品A,初始数量为5,然后原则更新数量并将其设置为1(5-4)。对于客户Y情况,产品A的初始数量仍为5,因为客户Y和客户X同时购买该产品,因此它们得到相同的初始数量。然后教义将数量更新为3(5-2)。
如果doctrine2提供了一些方法来通过增量方式生成查询,比如SET column_name = column_name + difference_value而不是SET column_name = value,那么这将是一个很好的解决方案。但据我所知,doctrine2总是使用SET column_name = value生成查询。
是否有任何解决方案或解决办法,而不是锁定表?通过锁定表,这意味着客户Y必须等待客户X完成他的事务。假设有100名客户同时购买该产品,其性能将非常糟糕。
谢谢。
发布于 2015-10-13 07:23:29
尝试使用教义交易。有很多方法可以解决你的问题。http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/transactions-and-concurrency.html
https://stackoverflow.com/questions/33095459
复制相似问题