2017-10-05 62 views
0

我已創建使用我已經安排在每5分鐘爲低於pgagent工作是代碼安排一份工作時序的Postgres:如何使用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小時運行一次。

例如:如果最後一個作業運行時間2017年10月5日03:05:00.703287-07,則下次運行時它顯示:2017年10月5日04:05:00-07

請協助處理計時參數。我想每隔5分鐘就會每隔5分鐘完成一次這項工作。

Regards,

回答

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

基本上,這個插入的內容是每分鐘標記分鐘0,5,10,15,20,25,30,35,40,45,50和55。

我不知道你爲什麼使用insert語句創建它,因爲GUI提供了一個非常簡潔的方式來安排作業。

enter image description here

我希望它能幫助:-)

:同樣的配置可以利用這樣的圖形用戶界面來完成