pg_cron 支持 Last Day of Month 调度

pg_cron 是 PostgreSQL 数据库的一个插件,用于在 Postgres 数据库中实现定时任务功能。它内嵌了 vixie’s cron 作为调度条件的判断,不同于 cron 使用 crontab 文件来保存任务信息,pg_cron 任务详情保存在表 cron.job 中,一个名为 pg_cron scheduler 的 background worker 周期性地读取 cron.job 的任务列表并将其更新到 pg_cron 的内存缓存结构中,然后判断每条任务是否满足执行条件,如果满足则调度任务执行。 常见用法 -- 匿名任务: 定时删除过期数据,在周六凌晨三点半删除一周前的数据 SELECT cron.schedule('30 3 * * 6', $$DELETE FROM events WHERE event_time < now() - interval '1 week'$$); -- 具名任务: 在每天早上10点对插件所在的 database 执行 vaccum SELECT cron.schedule('nightly-vacuum', '0 10 * * *', 'VACUUM'); -- 根据任务名称更新调度任务,将调度改为凌晨3点 SELECT cron.schedule('nightly-vacuum', '0 3 * * *', 'VACUUM'); -- 每隔 5 秒钟执行一次名为 process_updates 的存储过程 SELECT cron....

August 22, 2023 · 2 min · 256 words · pg-x