- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
模擬程式為使用 Visual Studio 2017 開發的 .NET Core v2.1 主控台應用程式
安裝 Visual Studio 2017 與建置 .NET Core v2.1 開發環境不在本文章範圍
詳細程式碼可參考 eShop.Loader 在 Github 的目錄
txstudio/eShopPanicBuyingSimulatorUseStoreProcedure/tree/master/netcoreapp/eShop.Loader
提供設定執行緒數量與開始執行時間來模擬資料庫受到大流量的情況
設定範例如下
dotnet eShop.Loader.dll -t 20 -e 13:01
上述指令碼執行後應用程式會建立 20 個執行緒數量,並等待系統時間到達 13:01 時開始執行模擬購買商品行為
eShop.Loader 的模擬購買情況
會取得所有商品清單並隨機選擇要購買的商品與數量:每次僅購買一項商品,數量隨機值為 1~2 。持續執行到所有商品的庫存已經售完就會停止執行,執行事件會紀錄在 Events.EventBuying 資料表
應用程式執行截圖
執行應用程式時會顯示設定資訊

到設定時間之後就會開始模擬購買行為

所有執行緒執行完畢後應用程式才會跳出離開訊息

執行的紀錄會儲存在 Events.EventBuying 資料表

若預存程序呼叫有錯誤的話會儲存在 Events.EventDatabaseErrorLog 資料表

接下來就要依情境來模擬不同資料庫設計的結果差異
將購訂單商品數量與庫存量作關聯
留言
張貼留言