PgAgent

Hier ist das Bild dazu PicPaste - postgresql-AMs6RFnA.png.
Meine Frage ist so Simpel wie kompliziert offenbar für mich.

Wie führe ich Job1 über Query aus? Ich würde ja sagen
SELECT * FROM pgagent.Job1

aber das ist es offenbar nicht.
Hab die Manual dazu bestimmt bald 10mal gelesen aber es bringt halt einfach nichts :frowning:

Vorweg - ich kenne PgAgent nur vom Namen her.

Aber: mit einem dumpfen “SELECT * FROM pgagent.Job1” wohl kaum. Soweit ich jetzt die Doku dazu überflogen habe, steht der Job in der DB postgres, Schema pgagent, Tabelle pga_job, Spalte jobname. Da drin steht ein TEXT, der wohl das auszuführende Kommando (als Batch-Datei oder so) enthält.

Warum einklich so umständlich? Wenn Du schon Mausschubser bist, irgendwo hab ich gelesen, daß man in der GUI dazu auf den Job wohl klicken und dann ‘ausfühhren’ kann.

Was genau hast denn einklich vor?


Andreas

Ich will nur wissen wie das geht :slight_smile: Falls ich es mal gebrauchen kann ^^.

Meinst du das so oder so?

pgagent, “Manga”.“Manga”, Job1;

pgagent, “Manga”.“Manga”, ISBN Job1;

So bekomme ich es jedenfalls nicht hin :frowning:

Angeblich sagt zwar ein Bild (aus deinem ersten Post) mehr als tausend Worte, aber ich hab keine Ahnung, wovon Du sprichst…


Andreas

Bin zwar derjenige mit der wenigsten Ahnung von allen, das kleinste Licht und Pg_agent sagt mir gar nichts. Kann es aber sein, dass du letztlich in deiner DB „Manga“ nur ein SELECT ausführen willst und nun in pgAdmin suchst, wo du das eingibst?
Wenn die Vermutung richtig ist, dann in PgAdminIII:
Doppelklick auf deine DB „Manga“
Durchklicken bis Manga > Schemata > public
Dann in oberer Leiste auf das icon ‚beliebige SQL-Abfrage ausführen‘
Im sich öffnenden SQL-Editor alles löschen und deine Anfrage eingeben

Falls nicht, vergiss diesen Beitrag.

Carsten

Vergessen trotzdem danke.
Ich versuche zu lernen wie ich mit PgAgent Jobs ausführe.
Um nicht immer den selben Code kopieren zu müssen :rolleyes:

pgAgent ist doch nur dafür da, SQL Befehle regelmässig (täglich, stündliche, am 1. des Monats, usw) auszuführen.

Wenn Du also etwas manuel und regelmässig ausführen willst, pack das in eine Funktion. In pgAgent konfigurierst Du ein SQL zum Aufrufen der Funktion so dass dies zur gewünschten Zeit passiert. Willst Du es “aus der Reihe” manuell machen, führst Du den SQL Befehl einfach in dem SQL Client Deiner Wahl aus.

Das habe ich auch kurz gefasst gemeint :slight_smile: . EDIT: Niemand Ahnung wie das geht :frowning: ? Also Manuell.

Naja, einfach den SQL Befehl der konfiguriert ist manuell ausführen…

Ich will das aber über Query können >:<

Hallo,

Ich wüsste auch gerne wie das funktioniert. Hast du es mittlerweile herausgefunden bzw weiss jemand wie es funktioniert?

Hier nochmal das Problem, für alle die mit den vorherigen Posts Probleme hatten:
Im pgAgent kann über die GUI ein Job ausgewählt werden und über das Kontextmenü die Funktion “Jetzt ausführen” bzw “Run now” ausgewählt werden, sodass er den Job ausführt.
Die eigentliche Frage war jetzt, wie man diese “Jetzt ausführen” Funktion über ein SQL ausgedrücken kann.

Gruß Manuel

Was steht denn in der Tabelle?

Vermutlich ein TEXT, der ein SQL enthält. Diesen Text via EXECUTE ausführen. Du wirst also eine Stored Procedure schreiben müssen. Das ist aber alles nur eine Vermutung - ich kenne PGAgent nicht.

Es könnte theoretisch auch die Ausführung einer Batch-Datei sein.

Hier mal ein update: das Problem kann wie folgt gelöst werden:
UPDATE pgagent.pga_job SET jobnextrun = now() WHERE jobid = ;

Gruß Manuel