Seite 1 von 1

Im Trigger ein zweites Query als Thread starten

Verfasst: Fr 3. Mai 2013, 14:28
von dschuch
Hallo Leute,

ich habe folgendes Problem. Beim Schreiben von Datensätzen in die Datenbank soll anschliessend eine statistische Berechnung ausgeführt werden. Da ich nicht möchte, das der Anwender davon betroffen ist, hätte ich diese gern in einem 2. Thread ausgelöst.
Grundsätzlich möchte ich dies aber nicht von der Anwendungslogik aus machen, sondern hätte ich am liebsten eine Funktion in pl/Java, pl/Python, also Serverseitig, welcher ich dann über Parameter das auszuführende Query (wiederrum eine StoredProcedure) mitgeben, welches im Background ausgeführt werden soll.
Fall es hierin zu Fehlern käme, fangen wir das wieder über ein Kommunikationssystem ab (Notifications).

Hat jemand von Euch etwas ähnliches schonmal probiert? Welche sprache bietet sich hierfür am ehesten an? Evtl gibt es ja auch ein paar Code-Beispiele dafür.

Letztendlich spiegelt dieser Punkt die Idee auch irgendwo wieder: https://wiki.postgresql.org/wiki/Parall ... _Execution

Danke für Hinweise,
Daniel.

Re: Im Trigger ein zweites Query als Thread starten

Verfasst: Fr 3. Mai 2013, 21:37
von akretschmer
dschuch hat geschrieben:Hallo Leute,

ich habe folgendes Problem. Beim Schreiben von Datensätzen in die Datenbank soll anschliessend eine statistische Berechnung ausgeführt werden. Da ich nicht möchte, das der Anwender davon betroffen ist, hätte ich diese gern in einem 2. Thread ausgelöst.

Daniel.


Lange Erklärung dafür, daß Du auf http://www.depesz.com/2012/12/07/waitin ... processes/ wartest, oder?

Re: Im Trigger ein zweites Query als Thread starten

Verfasst: Sa 4. Mai 2013, 12:13
von hkocam
Hi,

das geht grundsätzlich nicht, da in pg ein query => ein backend => ein prozess.
Du kannst aber per db_link dich wieder auf deinen server verbinden und ein neues query starten.
Oder du löst das über eine (worker)-queue und cron.

vg hkocam