2009-05-25 8 views
1

In unserem Projekt haben wir Anforderung, dass nach dem Empfang von SMS-Nachricht von Drittanbieter Service Provider genau nach 3 Minuten muss ich eine SQL-Abfrage zur Aktualisierung der Datenbank ausführen.Ausführen von SQL-Abfrage nach bestimmten Zeitpunkt Zeit

Wie soll ich das tun, irgendwelche Vorschläge werden akzeptiert.

** ist es möglich, gespeicherte Prozeduren mit ...

Genau das Szenario ist, haben wir Vermittler Service-Anwendung betrachten es als Webservice hat. Von meiner Anwendung, wenn ich eine SMS an die Webservice-Anwendung über den SMS-Dienstanbieter sende, wird dieses System zum eingebetteten Gerät wechseln, wodurch das System aktiviert wird. und nach 2 min Gerät wird SMS-Nachricht senden, um Anwendung durch SMS-Dienstanbieter zu sagen, dass die Überprüfung läuft ... nach Erhalt dieser Nachricht genau ich muss Datenbank aktualisieren sagen, dass chekcing erfolgreich getan. warum 3 Minuten, weil genau nach dieser Zeit Gerät aus geht.

Grüßen, Mahesh

+0

Empfangen einer SMS-Nachricht wo? –

+0

Wie genau müssen die drei Minuten sein und muss es aus der Sicht des Application Clients oder des Servers sein? Müssen Sie beispielsweise die Netzwerklatenz berücksichtigen? –

+0

Genau das Szenario ist, wir haben Mediator Service-Anwendung betrachten, es hat Webservice. Von meiner Anwendung, wenn ich eine SMS an die Webservice-Anwendung über den SMS-Dienstanbieter sende, wird dieses System zum eingebetteten Gerät wechseln, wodurch das System aktiviert wird. und nach 2 min Gerät sendet SMS-Nachricht an die Anwendung durch SMS-Service-Provider zu sagen, dass die Überprüfung läuft ... nach dem Erhalt dieser Nachricht genau muss ich Datenbank aktualisieren sagen, dass chekcing erfolgreich getan. warum 3 Minuten, denn genau nach dieser Zeit wird das Gerät ausgeschaltet. – Mayu

Antwort

5

Wie genau erhalten Sie die SMS-Nachrichten. Welcher Service holt sie ab?

Theres ein paar Möglichkeiten, wie Sie es tun könnten.

In Ihrem Anwendungscode für das SMSReceived-Ereignis können Sie einen separaten Thread 180 Sekunden lang in den Ruhezustand versetzen und dann Ihren SQL-Code aufrufen.

Wenn Sie es in der Datenbank tun möchten, benötigen Sie eine Art Abfragethread.

Nehmen Sie die „TimeReceived“ und haben ein bisschen Flagge „nachbearbeiteten“

Dann könnten Sie nur einen Job haben, der alle 60 Sekunden ausgeführt wird, die

SELECT * 
FROM ReceivedSMS 
WHERE TimeRecieved < dateadd(second, -180, getdatE()) AND 
     PostProcessed = 0 

FOREACH Record - Execute SPROC & Update PostProcessed = 1. 
0

Den gespeicherten Prozess sofort ausführen, aber die erste T-SQL-Zeile ist WAITFOR DELAY '00:03:00'?

Verwandte Themen