gpt4 book ai didi

php - 如何使用 Yii2 和 MySQL 事务处理并发问题?

转载 作者:行者123 更新时间:2023-11-30 22:27:17 25 4
gpt4 key购买 nike

概览

考虑以下细节:

  1. 我们有一个名为user 的表。其中有一个名为 wallet 的列。
  2. 我们有一个名为walletAction 的表。我们在用户执行的每个钱包操作中插入一个新条目。该表就像数据库中的某种日志,带有一些计算。
  3. 我们有一个 CRON 命令,它每 N 分钟执行一次更新。每个 CRON 操作都通过使用独立的 API 获取一些数据,并“插入”一个新的 walletAction 条目。同时更新用户钱包的值。
  4. 用户 可以从我们的网站购买东西。当 user 单击购买按钮时,我们插入一个新的 walletAction 条目并更改 user.wallet 列。

问题

恐怕CRON 更新用户点击购买按钮时的操作会同时发生导致 walletAction 表中的条目计算错误。

我需要对 CRON 更新执行或类似的东西进行某种“锁定”。

问题

  1. 我应该害怕这种情况吗?
  2. 我怎样才能避免这个问题?
  3. 我可以通过使用 MySQL 事务来避免这个麻烦吗?
  4. 我应该使用什么隔离级别,在什么情况下应该使用它? (在 CRON 命令中或在 用户 单击购买按钮时的操作中?)

最佳答案

我们在 php 上似乎没有 GOJava 中的并发。您可以实现一些技术技巧,但它们中的大部分都会给您带来新问题 :)。为了解决您的问题,我建议您使用乐观锁。有关更多信息,请参阅 http://www.yiiframework.com/doc-2.0/guide-db-active-record.html#optimistic-locks .

关于php - 如何使用 Yii2 和 MySQL 事务处理并发问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34837859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com