要在裝有 PostgreSQL 14 的 Red Hat、CentOS、Fedora 或 Amazon Linux 上安裝 pg_cron
,請遵循以下步驟。這些步驟假定您已經安裝了 PostgreSQL Global Development Group (PGDG) 的 PostgreSQL 版本。
安裝 pg_cron
擴展
- 使用
yum
安裝pg_cron
擴展:sudo yum install -y pg_cron_14
設置 pg_cron
-
要在 PostgreSQL 啟動時啟動
pg_cron
后臺進程,需要在postgresql.conf
文件中添加pg_cron
到shared_preload_libraries
配置:# required to load pg_cron background worker on start-up shared_preload_libraries = 'pg_cron'
-
默認情況下,
pg_cron
后臺進程的元數據表將在 “postgres” 數據庫中創建。您可以通過在postgresql.conf
中設置cron.database_name
配置參數來更改此設置:# optionally, specify the database in which the pg_cron background worker should run (defaults to postgres) cron.database_name = 'postgres'
-
之前
pg_cron
只能使用 GMT 時間,但現在您可以通過在postgresql.conf
中設置cron.timezone
來適應您的時區。例如,使用中國標準時間 (PRC):# optionally, specify the timezone in which the pg_cron background worker should run (defaults to GMT). E.g: cron.timezone = 'PRC'
-
重啟 PostgreSQL 以使更改生效。
創建 pg_cron
擴展
- 重啟 PostgreSQL 后,您可以使用
CREATE EXTENSION pg_cron
創建pg_cron
函數和元數據表:-- run as superuser: CREATE EXTENSION pg_cron;-- optionally, grant usage to regular users: GRANT USAGE ON SCHEMA cron TO marco;
確保 pg_cron
可以啟動作業
- 默認情況下,
pg_cron
使用 libpq 打開到本地數據庫的新連接,這需要在pg_hba.conf
中允許。您可能需要為從 localhost 來的連接啟用信任認證,或者可以將密碼添加到.pgpass
文件中,libpq 將在打開連接時使用此文件。
使用后臺工作進程調度作業
pg_cron
還可以配置為使用后臺工作進程。在這種情況下,同時進行作業的數量受max_worker_processes
設置的限制,因此您可能需要提高該設置:# Schedule jobs via background workers instead of localhost connections cron.use_background_workers = on # Increase the number of available background workers from the default of 8 max_worker_processes = 20
查看作業運行詳情
- 您可以在
cron.job_run_details
中查看正在運行和最近完成的作業運行狀態:select * from cron.job_run_details order by start_time desc limit 5;
確保在進行這些更改時,您已經備份了相應的配置文件,并在必要時咨詢了經驗豐富的數據庫管理員。