Im Trigger ein zweites Query als Thread starten

Fragen, Probleme etc. zu den prozedularen Sprachen ( PL/Tcl, PL/Perl und PL/Python).
Antworten
dschuch
Neuer Benutzer
Beiträge: 1
Registriert: Fr 3. Mai 2013, 14:04

Im Trigger ein zweites Query als Thread starten

Beitrag von dschuch » Fr 3. Mai 2013, 14:28

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.

akretschmer
Erfahrener Benutzer
Beiträge: 7613
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Im Trigger ein zweites Query als Thread starten

Beitrag von akretschmer » Fr 3. Mai 2013, 21:37

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?

hkocam
Benutzer
Beiträge: 79
Registriert: Do 31. Mai 2007, 23:45

Re: Im Trigger ein zweites Query als Thread starten

Beitrag von hkocam » Sa 4. Mai 2013, 12:13

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

Antworten