c#中lock的使用(用於預約超出限額的流程)
一個專案,預約系統,核心二張表:預約表,預約限額表
使用者點選預約按鈕後,
-
先select 預約限額表把該預約時間段的限額取出來,
-
再select 預約表把該預約時間已經預約上的次數算出來
-
第一步減第二步,得到是否還能進行預約,大於0就可以預約了
- 第三步裡大於0的話就insert 預約表
之前的程式碼都是用ado.net+sql語句執行的,然後在正式執行的時候,每天18點可以進行預約,然後我設定了某一時間段是可以預約1個,
結果在18點的時候N個人點了預約,導致計算出預約數後想插入之前,另一個人又來計算預約數了,導致超出限額了
問了下網友,給了三種解決方案:
-
redis
-
c#裡的lock
- c#裡的ConcurrentQueue
自己 測試了一下,用第二種 ,成功了,
第三種的話網友也給了個示例:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2001/viewspace-2809107/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C#中各種Lock的速度比較C#
- 用於預防勒索軟體的 DevSecOps 流程dev
- 關於java中的double check lockJava
- 淺談c#中使用lock的是與非(轉)C#
- C#中WebBrowser的使用C#Web
- 在Linux中設定磁碟限額(轉)Linux
- 如何使用 C# 中的 LazyC#
- 如何使用 C# 中的 ValueTaskC#
- C#中using的使用C#
- SemanticKernel/C#:使用Ollama中的對話模型與嵌入模型用於本地離線場景C#模型
- 關於Delphi中預編譯指令的使用方法 (轉)編譯
- Go 中實現使用者的每日限額(比如一天只能領三次福利)Go
- java中Stream的使用流程及注意Java
- 用託管類庫的方式在C#中使用C++編寫的類(設計流程)C#C++
- C#中普通快取的使用C#快取
- C#中類的使用舉例C#
- 一款簡約實用的“線上介面流程測試工具”
- 遊戲關卡中的型別運用:《LOOP》的無限可能遊戲型別OOP
- 關於C#中async/await的用法C#AI
- PHP無限遞迴選單的實現流程PHP遞迴
- C#中結構體的應用C#結構體
- “無限滾動載入”適用於你的產品嗎?
- 詳細資訊用於javascript中的承諾使用詳解JavaScript
- C#中列舉型別的使用C#型別
- 如何通過OEM 中Lock 資訊中的特殊行號查詢lock行
- oracle DBMS_LOCK.SLEEP()的使用Oracle
- 關於C# 中的Attribute 特性 經典C#
- sql server中預設約束的通用sql指令碼的刪除方法SQLServer指令碼
- 如何理解 SpringBoot 中的約定優於配置Spring Boot
- C#中關於 object,dynamic 一點使用心得C#Object
- 使用laravel解決庫存超出的幾個方案Laravel
- Oracle中latch和lock的區別Oracle
- 理解 IBM Lotus Domino 郵件資料庫的限額IBM資料庫
- C# httpcookie asp.net中cookie的使用C#HTTPCookieASP.NET
- 關於 Spring 中 getBean 的全流程原始碼解析SpringBean原始碼
- 關於 ReentrantLock 中鎖 lock() 和解鎖 unlock() 的底層原理淺析ReentrantLock
- forsage智慧合約開發技術應用流程
- C#中的char和string的使用簡介C#