Sync scheduler results into Logs table
This commit is contained in:
parent
8d915d8862
commit
8680a80b84
35
jobs/core_sync_job_logs.sql
Normal file
35
jobs/core_sync_job_logs.sql
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
DECLARE
|
||||||
|
in_job_name CONSTANT VARCHAR2(30) := 'CORE_SYNC_JOB_LOGS';
|
||||||
|
in_run_immediatelly CONSTANT BOOLEAN := FALSE;
|
||||||
|
BEGIN
|
||||||
|
BEGIN
|
||||||
|
DBMS_SCHEDULER.DROP_JOB(in_job_name, TRUE);
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
NULL;
|
||||||
|
END;
|
||||||
|
--
|
||||||
|
DBMS_SCHEDULER.CREATE_JOB (
|
||||||
|
job_name => in_job_name,
|
||||||
|
job_type => 'STORED_PROCEDURE',
|
||||||
|
job_action => 'app.sync_job_logs',
|
||||||
|
number_of_arguments => 1,
|
||||||
|
start_date => SYSDATE,
|
||||||
|
repeat_interval => 'FREQ=MINUTELY;INTERVAL=1', -- every minute
|
||||||
|
enabled => FALSE,
|
||||||
|
comments => 'Sync SCHEDULER results to LOGS table'
|
||||||
|
);
|
||||||
|
--
|
||||||
|
DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE(in_job_name, argument_position => 1, argument_value => SYSDATE - 1/24);
|
||||||
|
--
|
||||||
|
DBMS_SCHEDULER.SET_ATTRIBUTE(in_job_name, 'JOB_PRIORITY', 5); -- lower priority
|
||||||
|
DBMS_SCHEDULER.ENABLE(in_job_name);
|
||||||
|
COMMIT;
|
||||||
|
--
|
||||||
|
IF in_run_immediatelly THEN
|
||||||
|
DBMS_SCHEDULER.RUN_JOB(in_job_name);
|
||||||
|
COMMIT;
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
@ -1055,6 +1055,14 @@ CREATE OR REPLACE PACKAGE app AS
|
|||||||
in_autodrop BOOLEAN := TRUE,
|
in_autodrop BOOLEAN := TRUE,
|
||||||
in_comments VARCHAR2 := NULL
|
in_comments VARCHAR2 := NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Sync scheduler results to Logs
|
||||||
|
--
|
||||||
|
PROCEDURE sync_job_logs (
|
||||||
|
in_interval DATE
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2154,7 +2154,7 @@ CREATE OR REPLACE PACKAGE BODY app AS
|
|||||||
BEGIN
|
BEGIN
|
||||||
curr_id := app.log__ (
|
curr_id := app.log__ (
|
||||||
in_flag => app.flag_scheduler,
|
in_flag => app.flag_scheduler,
|
||||||
in_arguments => in_job_name,
|
in_arguments => REPLACE(in_job_name, '"', ''),
|
||||||
in_parent_id => in_log_id
|
in_parent_id => in_log_id
|
||||||
);
|
);
|
||||||
END;
|
END;
|
||||||
@ -2237,6 +2237,51 @@ CREATE OR REPLACE PACKAGE BODY app AS
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
PROCEDURE sync_job_logs (
|
||||||
|
in_interval DATE
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
FOR d IN (
|
||||||
|
SELECT
|
||||||
|
l.log_id,
|
||||||
|
d.log_id AS job_log_id,
|
||||||
|
d.job_name,
|
||||||
|
d.status,
|
||||||
|
app.get_duration(d.run_duration) AS duration,
|
||||||
|
d.cpu_used,
|
||||||
|
d.errors,
|
||||||
|
d.output
|
||||||
|
FROM user_scheduler_job_run_details d
|
||||||
|
JOIN user_scheduler_job_log j
|
||||||
|
ON j.log_id = d.log_id
|
||||||
|
AND j.log_date >= in_interval
|
||||||
|
JOIN logs l
|
||||||
|
ON l.created_at >= in_interval
|
||||||
|
AND l.flag = app.flag_scheduler
|
||||||
|
AND l.action_name IS NULL
|
||||||
|
AND l.arguments = d.job_name
|
||||||
|
) LOOP
|
||||||
|
UPDATE logs l
|
||||||
|
SET l.action_name = d.status,
|
||||||
|
l.module_timer = d.duration
|
||||||
|
WHERE l.log_id = d.log_id;
|
||||||
|
--
|
||||||
|
/*
|
||||||
|
l.payload = d.run_duration || CHR(10) || '--' || CHR(10) ||
|
||||||
|
d.cpu_used || CHR(10) || '--' || CHR(10) ||
|
||||||
|
d.errors || CHR(10) || '--' || CHR(10) ||
|
||||||
|
d.output
|
||||||
|
*/
|
||||||
|
--app.log_error();
|
||||||
|
--
|
||||||
|
-- PYTHON might fail
|
||||||
|
--
|
||||||
|
END LOOP;
|
||||||
|
END;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FUNCTION log__ (
|
FUNCTION log__ (
|
||||||
in_flag logs.flag%TYPE,
|
in_flag logs.flag%TYPE,
|
||||||
in_module_name logs.module_name%TYPE := NULL,
|
in_module_name logs.module_name%TYPE := NULL,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user