Postgres Cron

Da Emigar.
Jump to navigation Jump to search

per poter schedulare jon all'nterno di postgres, è necessario installare un componente aggiuntivo:

apt install postgresql-14-cron

successivamente va configurato:

alter system set shared_preload_libraries = 'pg_cron';
-- serve riavvio per poter eseguire gli altri comandi di configurazione
-- NON SERVE: SELECT pg_reload_conf();
-- NON FUNZIONA: load 'pg_cron';
alter system set cron.database_name = 'postgres';
create extension pg_cron;
-- grant usage on schema cron to utente01;


per utilizzarlo, ci sono le funzioni:


select * from cron.job;
-- Delete old data on Saturday at 3:30am (GMT)
SELECT cron.schedule('30 3 * * 6', $$DELETE FROM events WHERE event_time < now() - interval '1 week'$$);
-- Vacuum every day at 10:00am (GMT)
SELECT cron.schedule('0 10 * * *', 'VACUUM');
-- Unschedule all tasks
SELECT cron.unschedule(jobid) FROM cron.job;