PostgreSQL数据库插件——定时任务pg_cron

安装pg_cron

    cd /opt
    wget https://github.com.citusdata/pg_cron/archive/v1.2.0.tar.gz
    tar zxvf v1.2.0.tar.gz
    cd pg_cron-1.2.0
    make PG_CONFIG=/opt/pgsql/bin/pg_config
    make install PG_CONFIG=/opt/pgsql/bin/pg_config

    编辑postgresql.conf

      vi postgresql.conf
      shared_preload_libraries='pg_cron'
      cron.database_name='postgres' --pg_cron插件元数据存放数据库

      重启数据库

        pg_ctl -D /opt/data/ restart

        创建扩展

          /opt/pg12/bin/psql -p 5432-U postgres
          postgres=# create extension pg_cron;
          CREATE EXTENSIOIN

          赋予普通用户权限(可选)

            postgres=# GRANT USAGE ON SCHEMA cron TO test;

            普通用户创建job cron格式

              /opt/pg12/bin/psql -p 5432 -Ufeishujun postgres
              --每分钟插入一条随机数据
              postgres=> SELECT cron.schedule('* * * * *', $insert into t values((random()*100)::int, 'test');$$);
              --每天上午9点执行清理
              postgres=> SELECT cron.schedule('0 10 * * *''VACUUM');

              普通用户查询job列表

                postgres=> select jobid, command from cron.job;
                jobid | command
                ------+---------------------
                6 | insert into t values((random()*100)::int, 'test');
                7     | VACUUM

                普通用户删除job

                  postgres=> select cron.unschedule(7); 

                  插件github地址:https://github.com/citusdata/pg_cron


                  免责声明:

                  1、本站资源由自动抓取工具收集整理于网络。

                  2、本站不承担由于内容的合法性及真实性所引起的一切争议和法律责任。

                  3、电子书、小说等仅供网友预览使用,书籍版权归作者或出版社所有。

                  4、如作者、出版社认为资源涉及侵权,请联系本站,本站将在收到通知书后尽快删除您认为侵权的作品。

                  5、如果您喜欢本资源,请您支持作者,购买正版内容。

                  6、资源失效,请下方留言,欢迎分享资源链接

                  文章评论

                  0条评论