diff --git a/samples/Autonomous.sql b/samples/Autonomous.sql index 0f81b0a4..3e792741 100644 --- a/samples/Autonomous.sql +++ b/samples/Autonomous.sql @@ -21,6 +21,8 @@ END; $$ LANGUAGE PLPGSQL; +DELETE FROM timetable.chain WHERE chain_name = 'call_proc_every_10s'; + WITH cte_chain (v_chain_id) AS ( INSERT INTO timetable.chain (chain_name, run_at, max_instances, live, self_destruct) diff --git a/samples/Basic.sql b/samples/Basic.sql index ef4c830f..88a4b4c9 100644 --- a/samples/Basic.sql +++ b/samples/Basic.sql @@ -1,3 +1,5 @@ +DELETE FROM timetable.chain WHERE chain_name = 'notify_every_minute'; + SELECT timetable.add_job( job_name => 'notify_every_minute', job_schedule => '* * * * *', diff --git a/samples/Chain.sql b/samples/Chain.sql index 03dd78b2..76162e29 100644 --- a/samples/Chain.sql +++ b/samples/Chain.sql @@ -10,6 +10,9 @@ DECLARE v_task_id bigint; v_chain_id bigint; BEGIN + -- Remove existing chain to make this script idempotent + DELETE FROM timetable.chain WHERE chain_name = 'chain_operation'; + -- In order to implement chain pperation, we will create a table CREATE TABLE IF NOT EXISTS timetable.chain_log ( chain_log BIGSERIAL, diff --git a/samples/ClientMessages.sql b/samples/ClientMessages.sql index c83d8627..639addc5 100644 --- a/samples/ClientMessages.sql +++ b/samples/ClientMessages.sql @@ -9,6 +9,8 @@ BEGIN END; $BODY$; +DELETE FROM timetable.chain WHERE chain_name = 'raise_client_message_every_minute'; + SELECT timetable.add_job( job_name => 'raise_client_message_every_minute', job_schedule => '* * * * *', diff --git a/samples/CronStyle.sql b/samples/CronStyle.sql index f5418832..060ca001 100644 --- a/samples/CronStyle.sql +++ b/samples/CronStyle.sql @@ -17,6 +17,8 @@ CREATE TABLE IF NOT EXISTS timetable.dummy_log ( -- │ └────────── hour (0 - 23) -- └──────────── minute (0 - 59) +DELETE FROM timetable.chain WHERE chain_name = 'cron_insert_every_2h_on_27th'; + SELECT timetable.add_job ( job_name => 'cron_insert_every_2h_on_27th', job_schedule => '40 */2 27 * *', diff --git a/samples/DelayedRetry.sql b/samples/DelayedRetry.sql index 95f54977..1f90e833 100644 --- a/samples/DelayedRetry.sql +++ b/samples/DelayedRetry.sql @@ -31,6 +31,8 @@ BEGIN END $$; +DELETE FROM timetable.chain WHERE chain_name = 'retry_on_fail_delayed'; + SELECT timetable.add_job( job_name => 'retry_on_fail_delayed', job_schedule => '@every 10 minutes', @@ -39,8 +41,8 @@ SELECT timetable.add_job( job_live => TRUE, job_ignore_errors => FALSE, job_on_error => $$SELECT retry_chain_on_error( - worker_name => 'worker001', + worker_name => 'demo_worker', maximum_retry_count => 3, minimum_retry_timeout => interval '10 seconds', maximum_retry_duration => interval '5 minutes')$$ - ) \ No newline at end of file + ); \ No newline at end of file diff --git a/samples/ErrorHandling.sql b/samples/ErrorHandling.sql index 2eefd83f..224fbbf2 100644 --- a/samples/ErrorHandling.sql +++ b/samples/ErrorHandling.sql @@ -1,3 +1,5 @@ +DELETE FROM timetable.chain WHERE chain_name = 'fail_with_on_error_notify'; + SELECT timetable.add_job( job_name => 'fail_with_on_error_notify', job_schedule => '* * * * *', @@ -8,4 +10,4 @@ SELECT timetable.add_job( job_on_error => $$SELECT pg_notify('monitoring', format('{"ConfigID": %s, "Message": "Something bad happened"}', current_setting('pg_timetable.current_chain_id')::bigint))$$ - ) \ No newline at end of file + ); \ No newline at end of file diff --git a/samples/Exclusive.sql b/samples/Exclusive.sql index 327c3993..2744eb8d 100644 --- a/samples/Exclusive.sql +++ b/samples/Exclusive.sql @@ -8,6 +8,8 @@ BEGIN END; $BODY$; +DELETE FROM timetable.chain WHERE chain_name IN ('exclusive_sleep_every_10s', 'exclusive_sleep_after_10s'); + SELECT timetable.add_job( job_name => 'exclusive_sleep_every_10s', job_schedule => '@every 10 seconds', diff --git a/samples/Log.sql b/samples/Log.sql index 3adff8ae..fdf83939 100644 --- a/samples/Log.sql +++ b/samples/Log.sql @@ -1,3 +1,5 @@ +DELETE FROM timetable.chain WHERE chain_name = 'builtin_log_every_minute'; + SELECT timetable.add_job( job_name => 'builtin_log_every_minute', job_schedule => NULL, -- same as '* * * * *' diff --git a/samples/NoOp.sql b/samples/NoOp.sql index f7826394..16480da2 100644 --- a/samples/NoOp.sql +++ b/samples/NoOp.sql @@ -1,3 +1,5 @@ +DELETE FROM timetable.chain WHERE chain_name = 'noop_every_minute'; + SELECT timetable.add_job( job_name => 'noop_every_minute', job_schedule => '* * * * *', diff --git a/samples/SelfDestruct.sql b/samples/SelfDestruct.sql index cbe8cb2a..bb3f5fb1 100644 --- a/samples/SelfDestruct.sql +++ b/samples/SelfDestruct.sql @@ -1,4 +1,4 @@ -CREATE OR REPLACE FUNCTION raise_func(text) +CREATE OR REPLACE FUNCTION raise_notice_func(text) RETURNS void LANGUAGE plpgsql AS $BODY$ BEGIN @@ -6,10 +6,12 @@ BEGIN END; $BODY$; +DELETE FROM timetable.chain WHERE chain_name = 'notify_then_destruct'; + SELECT timetable.add_job( job_name => 'notify_then_destruct', job_schedule => '* * * * *', - job_command => 'SELECT raise_func($1)', + job_command => 'SELECT raise_notice_func($1)', job_parameters => '[ "Ahoj from self destruct task" ]' :: jsonb, job_kind => 'SQL'::timetable.command_kind, job_live => TRUE, diff --git a/samples/Sleep.sql b/samples/Sleep.sql index 4c6b978f..aaeb2c02 100644 --- a/samples/Sleep.sql +++ b/samples/Sleep.sql @@ -1,3 +1,5 @@ +DELETE FROM timetable.chain WHERE chain_name = 'sleep_every_10s'; + SELECT timetable.add_job( job_name => 'sleep_every_10s', job_schedule => '@every 10 seconds',