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_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
|
||||
curr_id := app.log__ (
|
||||
in_flag => app.flag_scheduler,
|
||||
in_arguments => in_job_name,
|
||||
in_arguments => REPLACE(in_job_name, '"', ''),
|
||||
in_parent_id => in_log_id
|
||||
);
|
||||
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__ (
|
||||
in_flag logs.flag%TYPE,
|
||||
in_module_name logs.module_name%TYPE := NULL,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user