Wir haben ein schönes Stück Python, das einige E-Mails sendet und mit einem Cloud-System interagiert. Funktioniert gut. Aber wir müssen es alle paar Minuten abfeuern, um die Datenbank abzufragen. Aus geschäftlichen Gründen muss das Python-Skript wirklich in Echtzeit ausgelöst werden, damit keine Abfrageverzögerung auftritt. (Dies dient Verkäufern, die mit Kunden telefonieren.)
Wir wollen wirklich keine 1-minütige Abfrageschleife. Oder 30 Sekunden. Wir möchten, dass die Aufzeichnung in der Datenbank angezeigt wird und dass die Dinge sofort geschehen.
Der schnelle Weg, um diese Fliege zu machen, besteht darin, sie auslösen zu lassen, wenn ein bestimmter Datensatztyp in eine Tabelle eingefügt wird.
Können wir ein Python-Skript über einen Trigger auslösen?
Gemäß Aarons Anmerkung unten wissen wir, dass dies eine sehr schlechte Sache ist , aber diese Tabelle wird nur sehr wenig genutzt (0-12 Einfügungen pro Tag). Das Abrufen der Tabelle entspricht nicht unseren geschäftlichen Anforderungen (die .py muss sofort ausgeführt werden - sie reicht weit mehr als das Senden einer E-Mail).
Wir glauben, dass eine Möglichkeit, unsere geschäftlichen Anforderungen zu erfüllen, darin besteht, die .net-Version von Python auf dem SQL Server einzurichten und dann T-SQL das Python-Skript so aufrufen zu lassen, wie es C # -Material aufruft ... aber wir haben keine Ahnung, wie mach das eigentlich! (ergo diese Frage).
Dokumente / Details?
Ich habe eine Folgefrage zum Stapelüberlauf gestellt: Wie erstelle ich eine Python-CLR-Prozedur in SQL Server?
Die Frage unter der Frage : Sie haben ein Stück Python. Sie möchten, dass es von einem SQL-Trigger ausgelöst wird, aber Sie wissen, dass dies eine sehr schlechte Sache ist. Was tun Sie also, um denselben Effekt zu erzielen, ohne Python-Code mitten in einer SQL-Operation zu haben?
Was ist der nicht auslösende, nicht abfragende Ansatz zur Lösung dieses Bedarfs?
(Der gleiche Effekt = "Einfügen / Aktualisieren / Löschen tritt in einer Tabelle auf und ein Python-Skript wird innerhalb von 2 Sekunden nach dem Datenbankereignis ausgelöst, ohne die Tabelle abzufragen")