2017-10-05 3 views
0

Einstellung zu registrieren ich einen Job mit pgagent erstellt haben, die ich auf alle 5 Minuten für die unten eingeplant haben, um den Code:Wie für einen Job in Postgres mit pgagent

DO $$ 
DECLARE 
    jid integer; 
    scid integer; 
BEGIN 
-- Creating a new job 
INSERT INTO pgagent.pga_job(
    jobjclid, jobname, jobdesc, jobhostagent, jobenabled 
) VALUES (
    1::integer, 'refresh_mobile'::text, ''::text, ''::text, true 
) RETURNING jobid INTO jid; 

-- Steps 
-- Inserting a step (jobid: NULL) 
INSERT INTO pgagent.pga_jobstep (
    jstjobid, jstname, jstenabled, jstkind, 
    jstconnstr, jstdbname, jstonerror, 
    jstcode, jstdesc 
) VALUES (
    jid, 'refresh_mobile_mv_data'::text, true, 's'::character(1), 
    ''::text, 'ICSPGD'::name, 'f'::character(1), 
    'SELECT refresh_materialized_views(''mobile'');'::text, 'Please check. Issue occired while refreshing Mobile Data'::text 
) ; 

-- Schedules 
-- Inserting a schedule 
INSERT INTO pgagent.pga_schedule(
    jscjobid, jscname, jscdesc, jscenabled, 
    jscstart, jscend, jscminutes, jschours, jscweekdays, jscmonthdays, jscmonths 
) VALUES (
    jid, 'minutly'::text, ''::text, true, 
    '2017-09-04 03:36:20-07'::timestamp with time zone, '2018-12-31 02:36:20-08'::timestamp with time zone, 
    -- Minutes 
    ARRAY[false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false]::boolean[], 
    -- Hours 
    ARRAY[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]::boolean[], 
    -- Week days 
    ARRAY[true, true, true, true, true, true, true]::boolean[], 
    -- Month days 
    ARRAY[true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true]::boolean[], 
    -- Months 
    ARRAY[true, true, true, true, true, true, true, true, true, true, true, true]::boolean[] 
) RETURNING jscid INTO scid; 
END 
$$; 

Aber wenn ich seine Statistiken bin Überprüfung (in pgadmin) oder über die Abfrage "select * from pgagent.pga_job;" Es wird angezeigt, dass der Job im Abstand von 1 Stunde ausgeführt wird.

Zum Beispiel: Wenn die letzten Job Laufzeit ist 2017.10.05 03: 05: 00.703287-07, dann die nächste Laufzeit zeigt es: 2017.10.05 04: 05: 00-07.

Bitte helfen Sie mit dem Timing-Parameter. Ich nehme an, dass ich diesen Job im Abstand von 5 Minuten täglich durchführe.

Grüße,

Antwort

1

Haben Sie so etwas probiert?

INSERT INTO pgagent.pga_schedule 
(jscid, jscjobid, jscname, jscdesc, jscminutes, jschours, jscweekdays, jscmonthdays, jscmonths, jscenabled, jscstart, jscend) 
VALUES(<SchId>, 29, 'minutly', '', '{t,f,f,f,f,t,f,f,f,f,t,f,f,f,f,t,f,f,f,f,t,f,f,f,f,t,f,f,f,f,t,f,f,f,f,t,f,f,f,f,t,f,f,f,f,t,f,f,f,f,t,f,f,f,f,t,f,f,f,f}', '{f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f}', '{f,f,f,f,f,f,f}', '{f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f,f}', '{f,f,f,f,f,f,f,f,f,f,f,f}', true, '2017-10-07 00:00:00', NULL); 

Im Grunde, was dieser Einsatz ist dabei die Minuten 0,5,10,15,20,25,30,35,40,45,50 und 55 für jede Stunde Markierung.

Ich weiß nicht, warum Sie es mit Einfügeanweisungen erstellen, da die GUI eine ziemlich gute Möglichkeit bietet, Jobs zu planen.

enter image description here

Ich hoffe, es :-)

hilft : Die gleiche Konfiguration kann über die GUI wie dies getan werden
Verwandte Themen