上一篇鏈接:https://www.cnblogs.com/fei686868/p/16721769.html
在上一篇中,我們介紹了CAP基於內存存儲的應用。本篇我們介紹下,把存儲做到mysql中,隊列還是使用內存隊列。
mysql中主要存儲是消息的內容以及狀態。
在nuget上,我們引入 DotNetCore.CAP.MySql 包。
Appsetting.json中配置mysql數據庫連接字符串
"ConnectionStrings": { "Default": "server=127.0.0.1;database=CAP;uid=root;pwd=123456" },
Programe.cs中,我們配置改爲採用mysql存儲
var services = builder.Services; services.AddCap(x => { x.UseMySql(opt => { opt.ConnectionString = builder.Configuration.GetSection("ConnectionStrings:Default").Value; }); x.UseInMemoryMessageQueue(); x.FailedRetryInterval = 20; x.UseDashboard(); });
就紅色部分與內存存儲有差異而已。我們需要自己建好庫,表會自動創建。
OK,這樣我們就完成了配置
運行起來後,會自動創建數據表結構。
我們可以看到自動生成了2個表,一個是發佈表,一個訂閱(接收)表
我看下發布表中內容
表中會記錄我們配置的版本號,V1是默認的。 name:消息的名稱,content:消息頭和消息體,Retries 嘗試的次數(當發佈失敗後,會自動繼續嘗試),StatusName 是消息的最終狀態。
我們再看訂閱表
內容跟發佈表基本類似,多了個Group分組,也就是我們可以把一個定義不同的分組來接收。
以上內容,就是採用mysql存儲的示例。
更多分享,請大家關注我的個人公衆號: