Deux applications utilisent la même database MSSQL.
Mon application utilise sqlalchemy avec pymssql et souhaite recevoir une notification lorsqu'une ligne est ajoutée à une table spécifique par une autre application.
Quelle est la bonne façon de faire cela?
Appelons votre application "consommateur", et l'autre application "producteur".
Il existe plusieurs approches, le meilleur ajustement dépendra du nombre de disques, producteurs et consommateurs que vous attendez.
false
comme valeur par défaut. Les nouvelles inputs doivent avoir ce champ défini sur false, ainsi une autre application peut définir "ack" sur true après avoir traité les nouvelles inputs. Sachez que tout algorithm impliquant l'interrogation de la database pour des modifications a le potentiel de grever lourdement le SGBD sous-jacent.
[mettre à jour]
Suggestion de van :
Juste pour l'exhaustivité des possibilités: vous pouvez également utiliser les triggersurs AFTER INSERT pour stocker un drapeau ou un TableName et une PrimaryKey de la ligne nouvellement insérée / mise à jour dans une table auxiliaire, que votre application SA interroge régulièrement. Cependant, soyez prudent car les insertions de SA triggersraient également le triggersur. – Van