考慮以下細節:
- 我們有一個名爲
user
表。它是一個名爲wallet
的列。 - 我們有一個名爲
walletAction
的表格。我們在用戶正在執行的每個錢包操作中插入一個新條目。這個表的作用就像數據庫中的某種日誌,並進行了一些計算。 - 我們有一個CRON命令,每
N
分鐘更新一次。每個CRON操作都通過使用獨立API獲取一些數據,並「插入」一個新的walletAction
條目。在這段時間,它更新了user
。wallet
的價值。 - A
user
可以從我們的網站上購買東西。當user
點擊購買按鈕時,我們插入新的walletAction
條目並更改user
。wallet
欄。
問題
我恐怕CRON更新和user
的行動時,他們點擊購買按鈕將在完全相同的時間發生引起了walletAction
表中的條目有錯誤的計算。
我需要某種'鎖'的CRON更新執行或沿着這些線的東西。
問題
- 我應該害怕的這種情況呢?
- 我該如何避免這個問題?
- 我可以通過使用MySQL事務避免這種麻煩嗎?
- 應該使用什麼隔離級別,在哪種情況下應該使用它? (在cron命令或
user
的作用,當他們點擊購買按鈕?)
你似乎對這個詞語不知所措;你擔心有**併發**問題。 – Keale
[可能可以幫助](http://stackoverflow.com/questions/1195858/how-to-deal-with-concurrent-updates-in-databases) – Keale