基于事件的激活

适用于SQL ServerAzure SQL 托管实例

SQL Server 提供队列激活事件以在队列有要处理的消息时通知外部应用程序。 本主题介绍此类事件以及用于接收和响应事件的策略。

队列激活事件

SQL Server 包括 QUEUE_ACTIVATION 事件。 此事件报告对另一个队列读取器有用的工作。 该激活事件包括相应队列的名称以及该队列所属数据库和架构的名称。 外部程序可以使用此信息启动正确的程序以从队列进行读取。

SQL Server 无法跟踪从队列读取的容量或外部进程数。 因此,只要需要激活,SQL Server 就会定期生成队列激活事件。

监视来自外部应用程序的激活事件

使用基于事件的激活的外部应用程序通常会为接收服务消息的队列创建事件通知。 外部应用程序创建用于接收激活消息的服务和队列,然后监视报告QUEUE_ACTIVATION事件的消息的队列。

此策略允许外部应用程序使用 Service Broker 内置的激活逻辑来确定队列读取器何时有更多工作。 此外,一个外部应用程序可以监视多个队列的激活,并在需要激活时启动相应的程序。