pg_cron: 作业调度
pg_cron
扩展是PostgreSQL的一个简单的基于cron的工作调度器,在数据库内运行。
使用方法
启用扩展
- 进入仪表板中的数据库页面。
- 点击侧边栏中的扩展。
- 搜索 "pg_cron "并启用该扩展。
语法
该计划使用标准cron语法,其中* 表示“每个时间段运行”,而特定数字表示“但仅在此时”:
┌───────────── min (0 - 59) │ ┌────────────── hour (0 - 23) │ │ ┌─────────────── day of month (1 - 31) │ │ │ ┌──────────────── month (1 - 12) │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to │ │ │ │ │ Saturday, or use names; 7 is also Sunday) │ │ │ │ │ │ │ │ │ │ * * * * *
示例
每周删除数据
在星期六凌晨3:30(GMT)删除旧数据:
1select cron.schedule (
2 'webhook-every-minute', -- name of the cron job
3 '* * * * *', -- every minute
4 $$ delete from events where event_time < now() - interval '1 week' $$
5);
每天运行一次VACUUM#
每天凌晨3:00(GMT)运行VACUUM
1SELECT cron.schedule('nightly-vacuum', '0 3 * * *', 'VACUUM');
取消作业计划
取消了一项名为'nightly-vacuum'
的工作计划:
1SELECT cron.unschedule('nightly-vacuum');