IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 瀚高数据库使用pg_cron定时任务 -> 正文阅读

[大数据]瀚高数据库使用pg_cron定时任务

目录
环境
文档用途
详细信息

环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.5
文档用途
使用定时任务pg_cron插件

详细信息
1、参数配置及说明
– 参数说明:

– 参数名 功能 默认值 需要重启

– cron.database_name 定时任务元信息所在的数据库 highgo 是

– cron.log_statement 执行任务前,是否将sql打印到日志 true 是

– cron.log_run 是否将任务的执行信息存储到job_run_details表中 true 是

– cron.host 要执行定时任务的host名 localhost 是

– cron.use_background_workers 使用后台work进程,而非客户端连接执行任务 false(457 true) 是

– cron.max_running_jobs 可以同时运行的job数量 5 是

– 注意:

– 1.3 及以上的版本,支持参数cron.log_run和cron.use_background_workers;

– 1.3 及以上的版本,设置cron.use_background_workers为true后,cron.host不再生效,使用起来更加方便;

– 使用前,需要将cron.database_name修改为创建定时任务的数据库;

– 使用sysdba连接test(需要使用定时任务的数据库)执行共享库预加载设置添加pg_cron(注意:添加前show shared_preload_libraries; 看一下当前值设置是否有值,有值用逗号隔开追加在后边)

psql test sysdba

alter system set shared_preload_libraries to pg_cron;

– 配置定时任务数据库

alter system set cron.database_name to test; --(默认为highgo库,配置其它库需要重启数据库)

– 切换syssso登录

\c - syssso

– 关闭数据库三权开关

select set_secure_param(‘hg_sepofpowers’,‘off’);

– 退出psql

\q

– 重启数据库

pg_ctl restart 或者 systemctl restart hgdb-xxx-x.x.x.service 或者 service hgdb-xxx-x.x.x.service restart(注意:pg_ctl命令和服务不能同时使用)

– 重启数据库后使用sysdba登录

psql test sysdba

– 建立插件

create extension pg_cron;

– 并赋模式权限给普通用户使用

grant usage on schema cron to test;

– 开启三权

select set_secure_param(‘hg_sepofpowers’,‘on’);

– 退出psql

\q

– 重启数据库

pg_ctl restart 或者 systemctl restart hgdb-xxx-x.x.x.service 或者 service hgdb-xxx-x.x.x.service restart(注意:pg_ctl命令和服务不能同时使用)

– 重启后使用普通用户登录数据库

psql test test

– 查看pg_cron插件提供的函数。

highgo=# \df cron.

                                                             函数列表

架构模式 | 名称 | 结果数据类型 | 参数数据类型 | 类型

----------±---------------------±-------------±---------------------------------------------------------------------------------±-----

cron | job_cache_invalidate | trigger | | 函数

cron | job_create | bigint | jobname name, jwhat text, jinterval interval, jstartrun timestamp with time zone| 函数

cron | job_create | bigint | jwhat text, jinterval interval | 函数

cron | job_create | bigint | jwhat text, jinterval interval, jstartrun timestamp with time zone | 函数

cron | schedule | bigint | job_name name, schedule text, command text | 函数

cron | schedule | bigint | schedule text, command text | 函数

cron | unschedule | boolean | job_id bigint | 函数

cron | unschedule | boolean | job_name name | 函数

(8 行记录)

– 创建测试表

create table test_pg_cron (id bigserial ,time timestamp);

– 注意事项

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

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

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

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

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

– job_create 参数说明:

– jobname 定时任务名称

– jwhat 定时执行的语句或者块

– jinterval 执行的间隔时间(秒(sec)分钟(min) 小时(hour) 天(day) 月(month) 年(year))

– jstartrun 何时开始执行

– 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 定时任务名称

– 下面介绍job_create使用,当定时任务名称存在时会更新存在的定时任务

– 定点执行,每天的当前时间执行

select cron.job_create(‘从现在开始每隔一天插入一次数据’,‘insert into test_pg_cron (time) values(now())’,‘1 d’,now());

– 每隔一分钟执行

select cron.job_create(‘从现在开始每隔1分钟插入一次数据’,‘insert into test_pg_cron (time) values(now())’,‘1 m’,now());

– 每隔3秒钟执行

select cron.job_create(‘从现在开始每隔3秒钟插入一次数据’,‘insert into test_pg_cron (time) values(now())’,‘3 s’,now());

– 查看测试表

select * from test_pg_cron;

– 查看任务

select * from cron.job;

– 查看任务执行记录

select * from cron.job_run_details;

– 下面介绍schedule使用,当定时任务名称存在时会更新存在的定时任务

– 每次重启数据库执行

select cron.schedule(‘重启数据库跟新pg_cron插件’, ‘@reboot’, ‘alter extension pg_cron update’);

– 每隔一分钟执行

select cron.job_create(‘从现在开始每隔1分钟插入一次数据’,’* * * * *’,‘insert into test_pg_cron (time) values(now())’);

– 注意:job_create schedule两者选其一执行即可,两者同时操作一条数据不排除执行两边的可能,schedule执行按照gmt时间会比北京时间晚8小时执行。

– 删除任务

– 根据定时任务id删除

select cron.unschedule(3);

– 根据定时任务名称删除

select cron.unschedule(‘每隔1分钟插入一次数据’);

2、执行结果:
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:37:32  更:2022-02-26 11:39:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:50:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码