本页
pg_cron: 作业调度
pg_cron
扩展是PostgreSQL的一个简单的基于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)删除旧数据:
select cron.schedule (
'webhook-every-minute', -- name of the cron job
'* * * * *', -- every minute
$$ delete from events where event_time < now() - interval '1 week' $$
);
每天运行一次VACUUM
每天凌晨3:00(GMT)运行VACUUM
SELECT cron.schedule('nightly-vacuum', '0 3 * * *', 'VACUUM');
取消作业计划
取消了一项名为'nightly-vacuum'
的工作计划:
SELECT cron.unschedule('nightly-vacuum');