我是使用 SQL Service 2005 Service Broker 的新手。我已经创建了队列并成功地进行了对话,等等。但是,我想对消息进行“节流”,但我不知道该怎么做。
消息由多用户应用程序调用的存储过程发送。假设有 20 个用户在 30 秒内每个用户调用一次此 proc,它只需要发送一次。所以我认为我需要从我的 proc 中获取某种方式来查看是否在过去 30 秒内发送了一条消息?有没有办法做到这一点?
我的一个想法是向“响应”队列发送一条消息,指示是否已调用请求队列激活过程。然后在我的存储过程(由用户应用程序调用)中查看最近是否调用了该特定消息。问题是我不希望这弄乱响应队列。可以查看队列(不接收)以查看其中是否存在消息吗?
或者有没有更简单的方法来完成我所追求的?