sqldependency 的使用
一、sqldependency說明
sqlDependency 提供了一種能力:當(dāng)監(jiān)測的數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生改變的時候,sqldependency會自動觸發(fā)onChange事件來通知應(yīng)用程序,從而達(dá)到讓系統(tǒng)自動更新數(shù)據(jù)(或者緩存的)的目的(后期會將其同signalr進(jìn)行結(jié)合,以滿足實(shí)時響應(yīng))
二、sqldependency方法調(diào)用(ASP.NET CORE 3.1)
SELECT is_broker_enabled FROM sys.databases WHERE name = 'ShengNong ’ (可以用來查看是否已經(jīng)開啟通知服務(wù))
在startup.cs中添加一個初始化服務(wù) services.AddHostedService();
在TEST中 添加一個Task 異步任務(wù)
調(diào)用方法
using System.Data.SqlClient;
public async Task WatchDevice(){await Task.Run(()=> {useSqlDependency();});}啟用 SqlDependency.Start(conStr)來開啟間監(jiān)聽
public void useSqlDependency() {string conStr = AppSetting.DbConnectionString; // 在應(yīng)用程序啟動時運(yùn)行的代碼SqlDependency.Start(conStr);//啟動監(jiān)聽服務(wù),ps:只需啟動一次_StockService.GetFourWayBusMessage();}在服務(wù)關(guān)閉的時候要及時關(guān)閉監(jiān)控
public Task StopAsync(CancellationToken cancellationToken){string conStr = AppSetting.DbConnectionString; // 在應(yīng)用程序啟動時運(yùn)行的代碼SqlDependency.Stop(conStr);//啟動監(jiān)聽服務(wù),ps:只需啟動一次return Task.CompletedTask;}通過SQL語句進(jìn)行監(jiān)控
注意 :這里必須使用規(guī)范的SQL語句,而且查詢的字段不可以用*代替。這個SQL的含義就是要監(jiān)控該表的相應(yīng)字段,當(dāng)該字段發(fā)生改變的時候執(zhí)行onchange,其余字段發(fā)生改變的時候不發(fā)生該改變
這樣一個簡單的sqldependency使用就完成了
寶劍鋒從磨礪出,梅花香自苦寒來。
總結(jié)
以上是生活随笔為你收集整理的sqldependency 的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后危机时代,DCS的新征程
- 下一篇: Mysql数据库使用总结