pg_cron 定时任务插件的安装

前言

pg_cron它作为扩展运行在数据库内部。它使用与常规cron相同的语法,但是它允许你直接从数据库调度PostgreSQL命令。pg_cron可以并行运行多个作业,但是一次最多只能运行一个作业实例。如果第二轮运行在第一轮运行完成之前开始,则第二轮运行将排队,并在第一轮运行完成后立即开始。这里有一个需要特别注意的点,pg_cron始终使用GMT时区!!如果你的数据库使用的是CST时区,定时任务的时间需要减去8小时。

安装

获取并编辑插件

https://github.com/citusdata/pg_cron/archive/v1.3.0.tar.gz
tar -xf xf v1.3.0.tar.gz
cd pg_cron-1.3.0
make
make install

在这里插入图片描述

修改配置文件

vim postgresql.conf
shared_preload_libraries= 'pg_stat_statements,pg_cron'
cron.database_name = 'postgres'
cron.use_background_workers = on
max_worker_processes = 16   //最大工作进程,因为该参数默认为8,另外它和数据库autovacuum进程有密切关联,一般生产需要根据服务器CPU去找一个最优的值。
max_connections=16000  //最大连接数,该参数根据自己实际生产进行调整,也可以不调整。
# 完成之后重启数据库
pg_ctl restart

在这里插入图片描述

创建pg_cron扩展

psql
# 创建扩展,需超级用户
CREATE EXTENSION pg_cron;
# 查看扩展
\dx
# 授权cron对象的使用权限
GRANT USAGE ON SCHEMA cron to postgres ;

在这里插入图片描述

常用定时任务

//新建定时任务
SELECT cron.schedule('30 6 * * *', 'VACUUM repack_test');
//查询定时任务
SELECT * FROM cron.job;
//删除定时任务
SELECT cron.unschedule(1);
//查询定时任务
SELECT * FROM cron.job;
//关于pg_cron插件的表信息
\dtS+ cron.*
 \dx+ cron.*

在这里插入图片描述
在这里插入图片描述

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会编程的喵星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值