$ psql –version
psql (PostgreSQL) 14.15 (Ubuntu 14.15-0ubuntu0.22.04.1)
$ sudo apt install postgresql-14-cron
$ sudo vi /etc/postgresql/14/main/postgresql.conf
以下を追加
shared_preload_libraries = ‘pg_cron’
cron.database_name = ‘postgres’
$ sudo systemctl restart postgresql
$ CREATE EXTENSION IF NOT EXISTS pg_cron;
一時間おきに1日前に作成されたセッションを削除する設定にする
$ SELECT cron.schedule(‘delete_expired_sessions’, ‘0 * * * *’, $$
DELETE FROM ares_sessions
WHERE created_at < NOW() - INTERVAL '1 day'
$$);
cronではなく、psql自体にバッチ処理の仕組みが備わっているのは素晴らしいね。