第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果兩個或多個請求同時出現(xiàn)會發(fā)生什么?

如果兩個或多個請求同時出現(xiàn)會發(fā)生什么?

至尊寶的傳說 2023-09-11 16:22:25
我是獨立開發(fā)者和自由職業(yè)者,我在我的城市有一個簡單的本地電子商務(wù)項目。我用 PHP MySQL 和其他前端技術(shù)開發(fā)了所有代碼。但我想如果只剩下一件商品并且兩個或更多人同時訂購?fù)簧唐窌l(fā)生什么。我使用了算法,如果商品缺貨,則訂單將被取消或要求客戶取消項目,以便哪個客戶將不得不取消他的項目或哪個客戶應(yīng)該下訂單。我知道這個問題看起來很愚蠢,但是,想想其他場景中的其他項目,如果我制作隨機聊天 Web 應(yīng)用程序,狀態(tài)將如何影響。如果一個人在線并且沒有與任何人聊天,如何匹配帳戶。我為此嘗試過一些方法,但沒有成功。我有 3 臺電腦,其中 2 臺 PC 和一臺 Mac,我嘗試同時發(fā)出請求,但由于互聯(lián)網(wǎng)速度的原因,只有一臺可以下訂單,而另一臺則在 2 分鐘后收到故障消息。那么如果速度相同會發(fā)生什么呢?我是否需要添加任何類型的算法來下訂單,然后其他人保留該訂單。我正在谷歌搜索但什么也沒找到。正如我之前所說,我是一名獨立開發(fā)人員,因此沒有人詢問要做什么,或者 MySql 會處理它。哦,如果你想用 WordPress 或像 laravel 這樣的框架來做這樣的項目。我也同意你的觀點,但客戶說只使用簡單的編程語言,甚至不使用庫。
查看完整描述

2 回答

?
慕工程0101907

TA貢獻1887條經(jīng)驗 獲得超5個贊

您所描述的是一種race condition情況,您處理它的方式取決于業(yè)務(wù)邏輯。例如,對于缺貨的產(chǎn)品,您首先需要決定是要自動延期交貨還是要中止購買。

如果您想中止購買,您需要使用某種類型的數(shù)據(jù)庫locking機制。鎖定可以暫時阻止對數(shù)據(jù)庫表或記錄的訪問。這個想法是,您在履行過程開始時鎖定庫存信息,并僅在處理購買后才解鎖。

當(dāng)數(shù)據(jù)庫請求遇到鎖時,它將等待直到鎖被釋放才能繼續(xù)操作(或者直到發(fā)生超時)。所以最先獲得鎖的請求,就是第一個有機會完成購買的請求。

但單獨鎖定可能還不夠,要防止您想要在database transaction.?事務(wù)可以確保處理購買所需的所有操作成功發(fā)生,否則一切都會回滾。例如,使用交易可能會阻止您在未實際完成購買的情況下更新庫存數(shù)量。

目標是當(dāng)兩個請求幾乎同時到來時(因為沒有同時發(fā)生任何事情),其中一個請求將首先獲得鎖定,然后完成commit購買交易。當(dāng)?shù)诙€請求最終有機會被處理時,庫存將為零,交易將失敗并發(fā)生roll-back(假設(shè)您實施了適當(dāng)?shù)臋z查)。

您需要的具體查詢和檢查因應(yīng)用程序而異,但適用相同的概念。對于您的情況,我們沒有任何具體信息可以進一步指導(dǎo)您,因此我建議您檢查提供的鏈接以收集更多信息。

祝你好運!


查看完整回答
反對 回復(fù) 2023-09-11
?
墨色風(fēng)雨

TA貢獻1853條經(jīng)驗 獲得超6個贊

有一個計數(shù)器來跟蹤數(shù)據(jù)庫中剩余項目的數(shù)量。下訂單時,在更新可用商品計數(shù)之前對表應(yīng)用寫鎖。這是兩個請求無法同時更新表。


查看完整回答
反對 回復(fù) 2023-09-11
  • 2 回答
  • 0 關(guān)注
  • 130 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號