我正在建立一個php/mysql的平臺,允許用戶以一定比例的產品。基本上,他們選擇他們想要出價的百分比以及他們想要在例如1.2。同步數據庫更新/檢查競價平臺
我遇到的問題是,如果同一產品同時出現多個出價,則需要對出價進行排隊,以便只有在有效出價處理完畢後才能處理。例如,如果有1.2%的可用價值20%,兩個用戶同時以1.2的價格出價20%,則每個出價的過程爲: 1 -----選擇當前出價 2 -----如果出價仍然可用 3 -----出價
這裏的問題是,如果兩個「檢查是否可用」都發生在任何一個「地點出價」之後,那麼兩個出價都會去通過並有效地導致股票發行。
有沒有排隊這個過程的方法,所以在下一個可以運行之前,整個步驟1-3都會發生。
我最初的想法是使用一個緩存表來存儲所有的出價,然後每隔幾秒鐘運行一個cron,它將按緩存表中ID的順序處理並相應地通知,但是這看起來似乎不可行作爲服務器的高流量系統會受到打擊。
任何幫助非常讚賞
閱讀關於交易和鎖(在mysql中) – zerkms
由於檢查和更新之間有一個php層,數據庫的格式並不重要,因爲2個查詢必須運行任何1個出價,第一個檢查是否他們是可用性,第二個實際出價。由於地方出價是增加一個新的行,而不僅僅是更新一個現有的行,那麼行被鎖定的面將不會有所作爲 –
這應該由數據庫來解決,因爲具體數據庫提供了所有的工具來處理高併發性(它們是事務和鎖) – zerkms