Question

Je dois créer un appel de processus sur un champ db (s) étant un certain statut. Je vous ai entendu pouvez exécuter un appel cURL avec un déclencheur db, mais Google n'est pas assez bon pour quoi que ce soit de retour, je peux utiliser.

Je suppose que ma question est trois parties:

  1. Peut-on faire?
  2. Référence?
  3. Solution de rechange?

Flux de travail:

champ db est mis à jour avec le statut, le besoin pour lancer script / demande / processus exécuté l'étape suivante dans mon flux de travail (Ceci est un script PHP) qui va tirer l'a enregistré dans la db et traiter une autre étape, puis mise à jour db avec les résultats.

Était-ce utile?

La solution

Vous ne devriez pas utiliser des déclencheurs pour cela, comme des blocs de déclenchement des opérations de sorte qu'il fera votre base de données très lente. Aussi, vous aurez besoin d'installer le langage dangereux pour Postgres -. Pl / sh, pl / perl, pl / python ou autre

Il y a 2 meilleures solutions pour ce problème:

  • disposer d'un procédé qui se connecte à la base de données et LISTEN s pour événements INFORMER générés par votre déclencheur - cette volonté travail instantanément;

  • vérifier périodiquement de nouvelles données à l'aide, par exemple, un script cron -. Cela fonctionnerait avec un retard

Autres conseils

Si vous pouvez appeler un script shell, http://plsh.projects.postgresql.org/ vous pouvez appeler une boucle.

Mais je reçois un sentiment effrayant sur l'approche ...

  • Si le serveur distant est hors ligne, incohérence des données ??

Alternative:

  • Je ne mettrais pas la logique métier dans les déclencheurs, que des contraintes sur mesure ou dénormalisation.

  • Faites ce que vous devez faire avec soit de niveau intermédiaire ou des procédures stockées.

Cordialement, // t

Je pense que ce que vous cherchez est un déclencheur dans Postgres qui exécutera le script necessery. Les déclencheurs sont expliqués dans la documentation , la syntaxe pour l'ajout d'un nouveau déclencheur est . Le type de déclenchement que vous cherchez semble être un déclencheur UPDATE AFTER. Pour autant que je sache, le script que vous exécutez devra vérifier si le champ est de l'état requis, comme postgres toujours courir le déclencheur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top