暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL定时任务

原创 梧桐 2023-08-17
1363

概述

pg_cron是定时任务管理器,可以执行数据等操作,如定期向表中插入数据。

安装配置

修改postgresql.conf配置文件,添加如下内容:

#shared_preload_libraries = '' #(change requires restart) shared_preload_libraries = 'pg_cron' cron.database_name = 'postgres'

注意:配置了cron.database_name参数之后,才能在对应的数据库上加载pg_cron扩展,否则创建扩展会报错。

配置pg_hba.conf中密码验证方式为trust,也可以配置.uxpass文件。

#"local" is for Unix domain socket connections only localhost all all trust

启动数据库,创建pg_cron扩展。

./psql create extension pg_cron;

定时设置。

例如:每隔1分钟向time_cron表中插入一条当前时间

  1. 创建一张time_cron表。

    create table time_cron(data timestamp);
  2. 建立定时任务,每分钟向time_cron表中插入一条当前时间记录。

    方式一:适用于本地数据库

    SELECT cron.schedule('*/1 * * * *', 'insert into time_cron values (now())');

    方式二:适用于远程数据库

    INSERT INTO cron.job (schedule, command, nodename, nodeport, database, username) VALUES ('*/1 * * * *', 'insert into time_cron values (now())', '127.0.0.1', 5432, 'postgres', 'mypassword');
  3. 查看任务是否创建成功。

    select * from cron.job;
  4. 等待几分钟,查看time_cron表中数据。

    select * from time_cron;
  5. 取消任务。

    方式一:

    SELECT cron.unschedule(2);

    方式二:

    delete from cron.job where jobid=2;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论