Sunday, 23 July 2023

Why pgAgent Job Is Not Working || How To Check pgAgent Job Working Or No...



Are your pgAgent jobs in PostgreSQL not working as expected? This video is designed to help you diagnose and resolve issues related to pgAgent job failures. We walk you through the most common reasons why pgAgent jobs might not be running and provide detailed steps on how to check their status using pgAdmin.

First, we explore the various factors that can cause pgAgent jobs to fail, such as configuration errors, permission issues, and server-side problems. Then, we demonstrate how to verify whether your jobs are running correctly by inspecting job logs, job schedules, and job definitions.

Additionally, this tutorial offers troubleshooting tips to fix common issues and ensure that your jobs execute reliably. We also share best practices for monitoring and maintaining your pgAgent jobs, so you can automate your PostgreSQL tasks with confidence.

Whether you're a database administrator, developer, or PostgreSQL enthusiast, this video will equip you with the knowledge you need to keep your pgAgent jobs running smoothly.


pgAgent job not working, check pgAgent job, PostgreSQL pgAgent, troubleshoot pgAgent job, pgAdmin job scheduling, pgAgent job failure, pgAgent troubleshooting, PostgreSQL automation, pgAgent best practices, PostgreSQL job monitoring
Please Like, Comment, and Subscribe to my channel. ❤


create table test_job (id numeric, time_stamp timestamp default current_timestamp);

SELECT * FROM test_job;

delete FROM test_job;

call public.testing_job_proc();

CREATE OR REPLACE PROCEDURE public.testing_job_proc()
LANGUAGE 'plpgsql'
AS $BODY$
DECLARE
lv_id numeric;
BEGIN
begin
select coalesce(max(id),0)+1 into lv_id from test_job;
exception when others then 
lv_id := 0;
end;
Insert into test_job(id) values(lv_id);
END;
$BODY$;


DO $$
DECLARE
    jid integer;
    scid integer;
BEGIN
-- Creating a new job
INSERT INTO pgagent.pga_job(
    jobjclid, jobname, jobdesc, jobhostagent, jobenabled
) VALUES (
    1::integer, 'Test_Job'::text, 'Test Job'::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, 'Step1'::text, true, 's'::character(1),
    ''::text, 'postgres'::name, 'f'::character(1),
    'call public.testing_job_proc();'::text, 'Step1 Test Job Proc'::text
) ;

-- Schedules
-- Inserting a schedule
INSERT INTO pgagent.pga_schedule(
    jscjobid, jscname, jscdesc, jscenabled,
    jscstart, jscend,    jscminutes, jschours, jscweekdays, jscmonthdays, jscmonths
) VALUES (
    jid, 'Scheduler1'::text, ''::text, true,
    '2023-07-23 20:00:00+05:30'::timestamp with time zone, '2023-07-31 20:00:00+05:30'::timestamp with time zone,
    -- Minutes
    '{t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t}'::bool[]::boolean[],
    -- Hours
    '{t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t}'::bool[]::boolean[],
    -- Week days
    '{t,t,t,t,t,t,t}'::bool[]::boolean[],
    -- Month days
    '{t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t,t}'::bool[]::boolean[],
    -- Months
    '{t,t,t,t,t,t,t,t,t,t,t,t}'::bool[]::boolean[]
) RETURNING jscid INTO scid;
END
$$;

No comments:

Post a Comment