news 2026/4/15 20:12:16

瀚高数据库定时任务pg_cron1.6版本安装说明

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
瀚高数据库定时任务pg_cron1.6版本安装说明

文章目录

  • 文档用途
  • 详细信息

文档用途

本文主要介绍如何使用pg_cron1.6版本去安装及配置pg_cron任务。

详细信息

1、安装扩展

--登陆业务库psql lizp_db sysdbaaltersystemsetshared_preload_librariesto‘pg_stat_statements,pg_cron’;#注意单引号是英文格式-- 配置定时任务数据库altersystemsetcron.database_nametolizp_db;--(默认为highgo库,配置其它库需要重启数据库)-- 使用后台work进程,而非客户端连接执行任务(开启后可不配置.pgpass)altersystemsetcron.use_background_workerstoon;\q-- 成功不写入记录cron.job_run_details表(按需求设置,开启需要添加定时任务定期清空cron.log_run表),需要修改数据库配置文件cd $PGDATA vi postgresql.auto.conf#在文件的最有一行添加以下信息cron.log_run=0;-- 重启数据库pg_ctl restart 或者 systemctl restart hgdb-xxx-x.x.x.service 或者 service hgdb-xxx-x.x.x.service restart(注意:pg_ctl命令和服务不能同时使用)-- 重启数据库后使用sysdba登录psql lizp_db sysdba-- 建立插件setapplication_nametosecuredump;createextension pg_cron;-- 查看pg_cron插件提供的函数。lizp_db=# \df cron.函数列表 架构模式|名称|结果数据类型|参数数据类型|类型----------+----------------------+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------cron|alter_job|void|job_idbigint,scheduletextDEFAULTNULL::text,commandtextDEFAULTNULL::text,databasetextDEFAULTNULL::text,usernametextDEFAULTNULL::text,activebooleanDEFAULTNULL::boolean|函数 cron|job_cache_invalidate|trigger||函数 cron|schedule|bigint|job_nametext,scheduletext,commandtext|函数 cron|schedule|bigint|scheduletext,commandtext|函数 cron|schedule_in_database|bigint|job_nametext,scheduletext,commandtext,databasetext,usernametextDEFAULTNULL::text,activebooleanDEFAULTtrue|函数 cron|unschedule|boolean|job_idbigint|函数 cron|unschedule|boolean|job_nametext|函数(7行记录)

2、 注意事项

– pg_cron需要后台守护进程,因此启动数据库前,需要将pg_cron放到shared_preload_libraries中;

– 定时任务不会在备机上运行,但当备机升主后,定时任务会自动启动;

– 定时任务会以任务创建者的权限执行;

– 一个实例可以并行运行多个任务,但同一时间某个任务仅能运行一个;

– 某个任务,需要等待前一个定时任务结束,那么该任务会进入等待队列,且会在前一个任务结束后尽快启动;

3、函数介绍及使用示例

-- schedule 参数说明:-- job_name 定时任务名称-- schedule 工作计划(* * * * *)如下:-- ┌───────────── 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)-- * * * * *-- command 定时执行的语句-- 注意-- 1.定时任务使用GMT时间执行;-- 2.使用 crontab.guru 工具,可以方便地创建任务调度规则;-- unschedule 参数说明:-- job_id 定时任务id-- job_name 定时任务名称-- 下面介绍schedule使用,当定时任务名称存在时会更新存在的定时任务命令格式:SELECTcron.schedule('任务名称','定时计划','定时任务内容');举例: 每周六的10点执行统计信息收集SELECTcron.schedule('Weekly Analyze','0 10 * * 6','vacuum analyze');每隔3秒执行一次存储过程selectcron.schedule('每隔3秒执行一次','3 seconds','CALL sp_preThirdData();');-- 每天对指定表进行VACUUM优化SELECTcron.schedule('nightly-vacuum','0 23 * * *','VACUUM ANALYZE large_table;');-- 查看任务select*fromcron.job;-- 查看任务执行记录(执行语句alter system set cron.log_run to 0;后不记录)select*fromcron.job_run_details;-- 下面介绍schedule使用,当定时任务名称存在时会更新存在的定时任务(本项目可忽略)-- 每次重启数据库执行selectcron.schedule('重启数据库跟新pg_cron插件','@reboot','alter extension pg_cron update');-- 每隔一分钟执行selectcron.job_create('从现在开始每隔1分钟插入一次数据','* * * * *','insert into test_pg_cron (time) values(now())');-- 注意:job_create schedule两者选其一执行即可,两者同时操作一条数据不排除执行两边的可能,schedule执行按照gmt时间会比北京时间晚8小时执行。-- 删除任务-- 根据定时任务id删除selectcron.unschedule(3);-- 根据定时任务名称删除selectcron.unschedule('一天执行一次');
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 20:08:07

Postman API测试

Postman API测试:高效开发与调试的利器 在当今的软件开发中,API(应用程序接口)已成为不同系统间交互的核心纽带。无论是前后端分离架构,还是微服务之间的通信,API的稳定性和性能都至关重要。而Postman作为…

作者头像 李华
网站建设 2026/4/15 20:03:38

3分钟掌握微信聊天记录导出:WeChatMsg完全指南

3分钟掌握微信聊天记录导出:WeChatMsg完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg …

作者头像 李华
网站建设 2026/4/15 20:01:36

【QGIS进阶】- 字段计算器Python函数实战:从数据清洗到自动化筛选

1. 为什么需要字段计算器的Python函数? 很多刚接触QGIS的朋友在处理属性表时,经常会遇到这样的困扰:数据源不规范,字段里混杂着各种特殊字符。比如我最近接手的一个市政管网项目,管径字段里就充斥着"X"、&qu…

作者头像 李华