2017-10-05 4 views
0

입니다 사용하여 포스트 그레스에서 일자리를 타이밍을 예약하는 방법 : 나는 그것의 통계를 확인하고 때내가 그 아래마다 5 분에 예약 한 pgagent를 사용하여 작업을 생성 한 코드 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 
$$; 

을하지만, (pgadmin에서) 또는 "select * from pgagent.pga_job;"쿼리를 통해 작업이 1 시간 간격으로 실행 중임을 나타냅니다. 05 : 마지막 작업 실행 시간이 2017년 10월 5일 03 인 경우 : 예를 들어

00.703287-07, 그 다음 실행 시간은 보여줍니다 : 2017년 10월 5일 04 : 05 : 00-07.

타이밍 매개 변수 사용에 도움이됩니다. 매일 매일 5 분 간격으로이 일을한다고 가정합니다.

감사합니다.

답변

1

시도해 보셨습니까?

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); 

기본적으로, 어떤이 삽입하고있는 것은 분마다 시간 05101520253035404550 55을 표시합니다.

GUI가 작업을 예약하는 데 매우 깔끔한 방법을 제공하기 때문에 삽입 문을 사용하여 만드는 이유를 알지 못합니다.

enter image description here

나는 그것이

:-) 도움이되기를 바랍니다 : 같은 구성은이 같은 GUI를 사용하여 수행 할 수 있습니다