Domanda

devo creare una chiamata processo su un campo di db (s) essendo un certo status. Ho sentito è possibile eseguire una chiamata CURL con un trigger db, ma Google non è di essere così gentile da qualche cosa di ritorno posso usare.

Quindi credo che la mia domanda è di tre parti:

  1. Può questo essere fatto?
  2. Riferimento?
  3. soluzione alternativa?

Flusso di lavoro:

campo db viene aggiornato con lo stato, necessità di kick off script / richiesta / processo che esegue il passo successivo nel mio flusso di lavoro (Questo è uno script PHP) che tirerà l'ha registrato nel db ed elaborare un altro passo, poi l'aggiornamento il db con i risultati.

È stato utile?

Soluzione

Non dovrebbe utilizzare i trigger per questo, come blocchi di innesco transazioni in modo che renda la vostra base di dati molto lenta. Inoltre si avrebbe bisogno di installare il linguaggio pericoloso Postgres -. Pl / sh, pl / perl, pl / pitone o altro

Ci sono 2 soluzioni migliori per questo problema:

  • avere un processo che si connette al database e LISTEN s per notificano eventi generati dal il trigger - questa volontà lavoro immediatamente;

  • controllare periodicamente la presenza di nuovi dati utilizzando, per esempio, uno script cron -. Questo dovrebbe funzionare con un ritardo

Altri suggerimenti

Se si può chiamare uno script di shell, http://plsh.projects.postgresql.org/ è possibile chiamare un ricciolo.

Ma ho una sensazione inquietante circa l'approccio ...

  • Se il server remoto va offline, incongruenza dei dati ??

Alternativa:

  • Non vorrei mettere la logica di business nei trigger, personalizzata solo vincoli o denormalizzazione.

  • Fai quello che devi fare con uno di livello intermedio o stored procedure.

Saluti, // t

Penso che quello che stai cercando è un trigger in postgres che verrà eseguito lo script necessery. I trigger sono spiegate in la documentazione , la sintassi per l'aggiunta di un nuovo trigger è href="http://www.postgresql.org/docs/8.1/interactive/sql-createtrigger.html" qui . Il tipo di trigger che stai cercando sembra essere un UPDATE grilletto dopo. Per quanto ne so, lo script si esegue dovrà verificare se il campo è dello stato richiesto, come Postgres sarà sempre eseguito il grilletto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top