2017-07-19 14 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秒的目标延迟意味着每秒轮询一次,根据查询,这可能很昂贵。