AzureSQLDB-发送表更新以调用函数

AzureSQLDB-发送表更新以调用函数,azure,azure-sql-database,azure-functions,azure-queues,Azure,Azure Sql Database,Azure Functions,Azure Queues,我正在Azure SQLDB上工作——我的想法是向signalR hub发送一条消息,它将和客户端连接。流量将很低(每天最多1000-2000条消息,延迟1-2秒即可) 我们不希望定期进行轮询,而是希望仅在有更新时使用Azure函数进行数据拉取。我了解AzureDB有功能限制,并且由于缺少CLR支持,触发器无法直接调用Azure函数 最好的选择是什么 我应该填充一个队列吗?它充当函数的触发器?同样,如何填充此队列 我可以使用服务巴士,但我更愿意保持简单 感谢您的指点和指导所以,我想您有一些

我正在Azure SQLDB上工作——我的想法是向signalR hub发送一条消息,它将和客户端连接。流量将很低(每天最多1000-2000条消息,延迟1-2秒即可)

我们不希望定期进行轮询,而是希望仅在有更新时使用Azure函数进行数据拉取。我了解AzureDB有功能限制,并且由于缺少CLR支持,触发器无法直接调用Azure函数

最好的选择是什么

  • 我应该填充一个队列吗?它充当函数的触发器?同样,如何填充此队列
  • 我可以使用服务巴士,但我更愿意保持简单

感谢您的指点和指导

所以,我想您有一些东西,我们称之为
客户端
,它可以更新SQL数据库中的数据:

客户端
->
数据库

因此,您大致有两种选择:

  • 客户端更改为在每次更新数据库时也插入队列项目。然后,您的函数将由队列项目触发,并将发送通知

    Client -> Database
           -> Queue -> Function -> SignalR
    
  • 使您的函数定期轮询数据库并检测更新本身(计时器触发器)

    客户端->数据库信号器
    
    听起来你现在已经从客户那里进行了民意调查,所以情况可能不会变得更糟。但是1-2秒的目标延迟意味着每秒轮询一次,这可能会很昂贵,具体取决于查询


  • 所以,我想您有一些东西,我们称之为
    客户端
    ,它更新SQL数据库中的数据:

    客户端
    ->
    数据库

    因此,您大致有两种选择:

  • 客户端更改为在每次更新数据库时也插入队列项目。然后,您的函数将由队列项目触发,并将发送通知

    Client -> Database
           -> Queue -> Function -> SignalR
    
  • 使您的函数定期轮询数据库并检测更新本身(计时器触发器)

    客户端->数据库信号器
    
    听起来你现在已经从客户那里进行了民意调查,所以情况可能不会变得更糟。但是1-2秒的目标延迟意味着每秒轮询一次,这可能会很昂贵,具体取决于查询