postgres pg_cron 擴展試用


就是一個簡單的試用,同時測試下docker 基礎鏡像

環境准備

  • docker-compose 文件
version: '3'
services:
  pgspider-pg_cron:
    image: dalongrong/pgspider:pg_cron
    ports: 
    - "5432:5432"
    environment: 
    - "POSTGRES_PASSWORD=dalong"

使用

  • 簡單需求
    每分鍾insert 數據到一張表中,表結構
 
CREATE TABLE apps (
    id SERIAL PRIMARY KEY,
    insert_date timestamp without time zone
);
  • 啟動擴展
CREATE EXTENSION pg_cron;
  • 創建調度任務
SELECT cron.schedule('* * * * *','insert into apps(insert_date) values(now())');
  • 查看任務
SELECT * FROM cron.job;
  • 刪除任務
SELECT cron.unschedule(cronid) FROM cron.job;
  • 一個效果

 

 

一些參考玩法

https://www.citusdata.com/blog/2016/09/09/pgcron-run-periodic-jobs-in-postgres/
https://www.citusdata.com/blog/2017/12/27/real-time-analytics-dashboards-with-citus/
https://www.citusdata.com/blog/2018/01/24/citus-and-pg-partman-creating-a-scalable-time-series-database-on-PostgreSQL/

說明

pg_cron可以並行運行多個作業,但是一次最多只能運行一個作業實例。如果第二輪運行應在第一輪運行完成之前開始,
則第二輪運行將排隊,並在第一輪運行完成后立即開始

參考資料

https://crontab.guru/
https://github.com/rongfengliang/pgspider-docker
https://github.com/citusdata/pg_cron


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM