我正在开发 Azure SQLDB,想法是将消息发送到 signalR hub,该 hub 将与客户端连接。流量较低(每天最多 1000-2000 条消息,1-2 秒延迟即可)
我们希望仅在有更新时使用 Azure 函数来提取数据,而不是定期轮询。我了解 AzureDB 存在功能限制,并且由于缺乏 CLR 支持,触发器无法直接调用 Azure 函数
Azure SQL Database trigger to insert audit info into Azure Table
最好的选择是什么
- 我应该填充一个队列 - 作为函数的触发器吗?再说一次,我如何填充这个队列?
- 我可以使用服务总线 - 但希望保持简单
感谢任何指示和指导
最佳答案
所以,我猜你有一些东西,我们称之为客户端
,它更新 SQL 数据库中的数据:
客户端
->
数据库
因此,您大致有两个选择:
更改
客户端
,以便在每次更新数据库时也插入一个队列项目。然后您的函数将由队列项目触发,并发送通知。Client -> Database -> Queue -> Function -> SignalR
让您的函数定期轮询数据库并检测更新本身(计时器触发器)。
Client -> Database <- (pulls) Function -> SignalR
听起来您现在已经从客户那里进行了民意调查,所以情况可能不会变得更糟。但 1-2 秒的目标延迟意味着每秒都会轮询,这可能会很昂贵,具体取决于查询。
关于AzureSQLDB-发送表更新以调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45183782/