Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
.
Je voudrais savoir s'il est possible de forcer l'exécution d'un job, par une requête SQL.
J'aurais besoin d'avoir le même comportement que le "Run now" qui est disponible par clic droit sur un job dans pgAgent.
.
Aujourd'hui, j'extrais le code plpgsql du champ jstcode de la table pga_jobstep, et je lance l'exécution de ce code dans mon programme. L'inconvénient est que je ne profite pas du mécanisme de log (via la table pgajobsteplog) et j'en ai vraiment besoin.
.
Je ne parviens pas à trouver cette info sur le net et ai bien peur qu'il n'y ai pas de solution...
Quelqu'un aurait-il un tuyau ?... une petite fonction cachée "select run_now_mon_job('jobname');" ??? ... ça me ferait plaisir
.
Merci par avance pour vos retours.
Dernière modification par nonoland (08/11/2021 18:01:47)
Hors ligne
Bonjour,
J'imagine que c'est possible, mais vous allez malheureusement devoir chercher comment cela se passe s'il n'y a pas de documentation officielle pour une API SQL pour faire ça. À priori cela ne devrait pas être trop compillqué, il suffit d'activer les traces de toutes les requêtes (log_min_duration_statatement = 0) soit sur votre instance, sur la base où pgadmin est installée ou sur l'utilisateur effectuant l'action, et de voir ce qu'il se passe lorsque vous cliquez sur "run now".
Julien.
https://rjuju.github.io/
Hors ligne
YES !
Merci pour ce tuyau Rjuju... c'était une excellente idée d'investigation !!!
.
Alors, pour info, la réponse à ma question est de forcer la valeur de la colonne "jobnextrun" dans la table pga_job, de cette manière:
.
UPDATE pgagent.pga_job
SET jobnextrun=now()::timestamptz
WHERE jobid=35::integer
.
35 est bien sûr l'id de mon job
.
Bonne journée à tous!
Dernière modification par nonoland (10/11/2021 10:58:16)
Hors ligne
Pages : 1