Nous avons un joli morceau de python qui envoie des e-mails et interagit avec un système cloud. Fonctionne bien. Mais nous devons le tirer toutes les quelques minutes pour interroger la base de données. Nous avons vraiment besoin, à des fins commerciales, que le script python se déclenche en temps réel, donc il n'y a pas de délai d'interrogation. (Cela sert les vendeurs qui sont au téléphone avec les clients.)
Nous ne voulons vraiment pas d'une boucle d'interrogation d'une minute. Ou 30 secondes. Nous voulons que le disque s'affiche dans la base de données et que les choses se produisent immédiatement.
Le moyen le plus rapide de faire voler cette mouche est de la déclencher lorsqu'un type d'enregistrement spécifique est inséré dans une table.
Pouvons-nous lancer un script python à partir d'un déclencheur?
Selon la note d'Aaron ci-dessous, nous savons que c'est une Very Bad Thing ™ , mais ce tableau est très très peu utilisé (0-12 inserts par jour). Interroger la table ne répond pas à nos besoins commerciaux (nous avons besoin que le .py s'exécute immédiatement - il fait bien plus que d'envoyer un e-mail).
Nous pensons qu'un moyen de répondre à nos besoins commerciaux est de configurer la version .net de python sur SQL Server, puis de demander à T-SQL d'appeler le script python de la même façon qu'il appelle les éléments C # ... mais nous ne savons pas comment faites ça! (ergo cette question).
Documents / détails?
J'ai posé une question de suivi sur Stack Overflow: comment créer une procédure Python CLR dans SQL Server?
La question sous la question : vous avez un morceau de python. Vous voulez qu'il se déclenche à partir d'un déclencheur SQL, mais vous savez que c'est une très mauvaise chose. Alors, que faites-vous pour obtenir le même effet sans avoir de code python au milieu d'une opération SQL?
Quelle est l'approche sans déclencheur et sans interrogation pour résoudre ce besoin?
(Le même effet = "insérer / mettre à jour / supprimer se produit dans une table et un script python est déclenché dans les 2 secondes suivant l'événement db, sans interroger la table")