2017-07-19 17 views
0

我正在使用Azure SQLDB-並且想法是將消息發送到將與客戶端連接的signalR集線器。流量將很低(最多每天大約1000-2000條消息,並且1-2秒的延遲很好)AzureSQLDB-發送表更新以調用函數

我們不是定期輪詢輪詢,而是希望使用Azure函數來僅使數據拉動當有更新時。我明白AzureDB有功能限制和觸發器不能直接調用Azure的功能,由於缺乏CLR支持

Azure SQL Database trigger to insert audit info into Azure Table

什麼是最好的選擇

  • 我應該填充一個隊列 - 充當觸發功能?再次,我如何填充這個隊列?
  • 我可以使用服務總線 - 但我們更希望保持它的簡單

欣賞任何指針和指導

回答

2

所以,我想你有什麼事情,我們稱之爲Client,其中更新數據在SQL數據庫:

Client->Database

所以,你有大約兩個選項:

  1. 更改Client以在每次更新數據庫時插入一個隊列項。然後你的函數將被隊列項觸發,併發送通知。

    Client -> Database 
         -> Queue -> Function -> SignalR 
    
  2. 使您的函數週期性地輪詢數據庫並自行檢測更新(定時器觸發器)。

    Client -> Database <- (pulls) Function -> SignalR 
    

    聽起來你已經從客戶那裏調查,所以它可能不會變得更糟。但1-2秒的目標延遲意味着每秒輪詢一次,根據查詢,這可能很昂貴。