【发布时间】:2017-05-17 13:26:40
【问题描述】:
我有一个现有的存储过程,用于与另一个服务通信。 此其他服务每 5 分钟最多可以处理 200 个请求,因此存储过程设置为最多 200 行。
SELECT TOP 200
column1 as 'MESSAGE_A'
, column2 as 'MESSAGE_B'
, column3 as 'MESSAGE_C'
, CAST(request as xml)
FROM [table]
ORDER BY [priority] ASC, column1 ASC
FOR XML PATH ('result_xml'), TYPE, ROOT ('requests')
问题在于,虽然程序每 5 分钟自动运行一次,但它也可以手动运行(因为客户端)。
如果手动执行提示超过 200 个请求,第三方会被阻塞并且进程崩溃。
如何添加检查以使其在 5 分钟的时间范围内最多选择 200 行?
【问题讨论】:
-
如果可以跟踪,服务被调用了多少时间,然后保持按日期调用的服务日志。这样,如果超过 200 个限制,您可以阻止调用服务直到 5 分钟。
标签: sql-server