我們試圖創建一個算法/啓發式來安排某個時間段的交付,但這裏肯定存在競爭條件,因此兩個衝突的計劃項目可能會寫入數據庫,因爲寫入不是原子性的。避免在複雜條件下將模型插入數據庫的競態條件
真正阻止競態條件的唯一方法是創建一些原子插入操作TMK。
服務器收到一個請求,要求在某個時間段內調度某些內容,並且在將數據寫入數據庫之前,服務器必須檢查該時間段是否仍然可用。但在那個時候,服務器可能會得到類似的請求,並最終寫入衝突的數據。
如何規避此?有沒有辦法在數據庫本身創建一些腳本來掛鉤寫入操作以使整個事物變成原子?通過在該腳本上放置一個鎖定機制?是什麼讓整個事情變得非原子化是服務器和數據庫之間的讀取和連線時間。
這聽起來像是你在編寫特定代碼時遇到問題。在這種情況下,如果您發佈[重現問題的最小代碼](http://stackoverflow.com/help/mcve),我們會更有幫助。 –
這個問題可能屬於程序員.stackexchange? –