Skip to content
Snippets Groups Projects
Commit 9311712a authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Added trigger to update job start/end time on phase update

parent 2849c8ed
No related branches found
No related tags found
No related merge requests found
Pipeline #2084 passed
...@@ -69,3 +69,24 @@ SELECT '/' || string_agg(name, '/') FROM ( ...@@ -69,3 +69,24 @@ SELECT '/' || string_agg(name, '/') FROM (
) SELECT name FROM paths ORDER BY LEVEL DESC ) SELECT name FROM paths ORDER BY LEVEL DESC
) AS names ) AS names
$func$ LANGUAGE sql; $func$ LANGUAGE sql;
-- Trigger function that automatically updates start time and end time of jobs at phase update.
-- This could be performed by business logic of each application that handles jobs but relying directly on the database ensures a better uniformity.
CREATE OR REPLACE FUNCTION job_phase_updated() RETURNS TRIGGER
AS
$func$
BEGIN
IF new.phase = 'EXECUTING' THEN
new.start_time := NOW();
ELSIF new.phase = 'COMPLETED' OR new.phase = 'ERROR' OR new.phase = 'ABORTED' THEN
new.end_time := NOW();
END IF;
RETURN new;
END;
$func$ LANGUAGE plpgsql;
CREATE TRIGGER job_update
BEFORE UPDATE OF phase ON job
FOR EACH ROW
EXECUTE PROCEDURE job_phase_updated();
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment