Forum général.cherche-logiciel SGDB avec notification asynchrone des changements d'une vue

Posté par  .
Étiquettes : aucune
0
24
fév.
2006
Hello,

Sous ce titre pompeux, j'aimerais faire un truc "tout con". Quand on fait une requète sur une table, bah euh, cette requète sélectionne les enregistrements à un instant t.

Sauf que si à l'instant t+1 (qui peut-être 1s comme 1jour), un nouvel enregistrement vient d'être rajouté ou supprimé, qui correspond aux critères de la requète, ben j'aimerais bien avoir une notification sans passer par du code ultra bloat ou refaire la requète à intervalle régulier.

Ça impose de maintenir une connexion permanente avec la base j'imagine, donc je doute que le SQL soit le langage de prédilection pour ce genre de chose. Plus que les performances, c'est la pertinance sur le long terme des résultats qui compte dans cette appli (qui est prévu de tourner 24h/24).

Quelqu'un aurait déjà entendu parlé d'un outil qui gère ça ? libre ou proprio, ça me fait trop c...r d'en écrire un :-(
  • # trigger ?

    Posté par  . Évalué à 5.

    Si tu ne dois pas travailler avec des requêtes arbitraires (c-à-d tu veux surveiller une seule requête ou un petit nombre défini à l'avance), place un trigger après insertion, mise à jour et suppression.

    Le plus simple, qui marchera partout, est de modifier un enregistrement d'une table à part contenant le nombre de modifications, ou la date de la dernière modification, et de consulter cette valeur périodiquement (requête très simple) ou avant de faire ta grosse requête (si tu veux cacher le résultat de ta requête pour des raisons de perfs).

    Plus complexe, PostgreSQL permet de définir des triggers dans divers langages, dont C, Python et Perl, et là tu fais ce que tu veux: écrire dans un fichier (socket, pipe ...), envoyer un signal à un processus ... Il te reste alors à intercepter la notification et à la traiter.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.