Ich bin neu bei der Verwendung des SQL Service 2005 Service Broker. Ich habe Warteschlangen erstellt und habe erfolgreich Gespräche usw. geführt. Ich möchte jedoch Nachrichten "drosseln", und ich bin mir nicht sicher, wie ich das anstellen soll.Wie Reduzieren einer Überschwemmung einer Service Broker-Warteschlange?
Nachrichten werden von einem gespeicherten Proc gesendet, der von einer Mehrbenutzeranwendung aufgerufen wird. Angenommen, 20 Benutzer veranlassen, dass dieser Proc innerhalb von 30 Sekunden einmal aufgerufen wird, muss er nur einmal gesendet werden. Ich denke also, ich brauche einen Weg von meinem Proc, um zu sehen, ob innerhalb der letzten 30 Sekunden eine Nachricht gesendet wurde. Gibt es eine Möglichkeit, das zu tun?
Eine Idee, die ich hatte, war eine Nachricht an eine "Antwort" -Warteschlange zu senden, die angibt, ob der Aktivierungsprozess der Anfragewarteschlange aufgerufen wurde. Dann in meinem gespeicherten Proc (aufgerufen von User App) sehen, ob diese bestimmte Nachricht kürzlich aufgerufen wurde. Problem ist, ich möchte nicht, dass dies die Antwort-Warteschlange durcheinander bringt. Kann man in eine Warteschlange schauen (nicht empfangen), um zu sehen, ob eine Nachricht darin existiert?
Oder gibt es einen einfacheren Weg, um zu erreichen, wonach ich suche?