Asynchrone Stored Procedure Calls
-
09-06-2019 - |
Frage
Ist es möglich, asynchron eine gespeicherte Prozedur von einer anderen gespeicherten Prozedur zu nennen?
Edit: Speziell mit einer DB2-Datenbank ich arbeite.
Lösung
Zusammenfassung:. Ja, wenn Ihre Datenbank einen Message Queue-Dienst hat
Sie können eine Nachricht an eine Warteschlange drücken und die Warteschlange Prozessor wird es asynchron verbrauchen.
- Oracle: Warteschlangen
- SQL Server: Service-Broker
- DB2: Event-Makler
Für „reine“ Stored Procedure Sprachen (PL / SQL- oder T-SQL) die Antwort ist nein, denn es arbeitet gegen das grundlegende Transaktionsmodell der meisten Datenbanken haben.
Allerdings, wenn Ihre Datenbank einen Warteschlangenmechanismus verfügt, können Sie verwenden, um das gleiche Ergebnis zu erhalten.
Andere Tipps
Mit MS SQL Server 2005 versuchen, den Service Broker und / oder CLR gespeicherte Prozeduren. Ich glaube nicht, dass es etwas direkt in TSQL gebaut.
Es klingt wie Sie einige geplante Aufträge an Ort und Stelle mit Cron (oder Fenster Äquivalente) setzen müssen. Sie konnten den anfänglichen gespeicherte Prozedur-Aufruf eine Art Flag im DB gesetzt, die dann regelmäßig durch einen cron-Job überprüft wird. Wenn Sie eine bestimmte Verzögerung haben müssen, bevor der zweite Job ausführt, sollten Sie in der Lage sein, das zu tun, indem Sie die Aufgabe durch den Cron-Job eingeplant hat.