개발/DB

[Timescaledb] Function, Procedure Job 스케줄러 등록 및 확인 방법

Gamii 2024. 7. 3. 20:22
728x90

1. Function, Procedure 생성시 파라미터로 반드시 job_id int, config jsonb 추가해준다.

CREATE OR REPLACE PROCEDURE public.test_procedure(job_id int, config jsonb)
 LANGUAGE plpgsql
AS $function$
declare
begin
    insert into user_access(id, name, time)
    select id, name, now()
    from user_info;    
END;$function$
;

 

 

 

 

2. job을 추가해준다.

 

select add_job( function/procedure 이름, schedule_interval => 스케줄러 주기, initial_start => 시작시간);

select add_job('test_procedure', schedule_interval => interval '10 sec', initial_start => now());

 

위에 나온 1007은 job의 id이다. 

 

 

 

 

 

3. job 관련 정보 확인 쿼리

-- public에 등록된 job 정보 보기
select *
from timescaledb_information.jobs
where proc_schema = 'public';

-- public에 등록된 job 통계 정보 보기(실행 횟수, 성공 횟수, 실패 횟수 등)
select *
from timescaledb_information.job_stats js ;

-- job 삭제 - delete_job(job_id)
-- 1007번 job 삭제
select delete_job(1007);

-- job 에러 조회
select *
from timescaledb_information.job_errors
order by start_time desc;

 

 

timescaledb_information.jobs

 

 

timescaledb_information.job_stats - 실패 경우

 

 

timescaledb_information.job_errors - 실패 사유 확인