pg_cron установка и настройка

pg_cron это расширение для PostgreSQL реализующее cron внутри СУБД, т.е. задания запускаются самой СУБД, и синхронизируются на
Standby. В случае переезда на Standby задания начнут выполняться на нем. Это удобнее использования системного cron, если задания
касаются только PostgreSQL.
Документация и исходники https://github.com/citusdata/pg_cron

pg_cron можно как собрать из из исходников, так и установить из пакета:

sudo yum install pg_cron_11

Редактируем конфиг postgresql.conf:

shared_preload_libraries = 'pg_cron'
cron.database_name = 'postgres'

Так же необходимо разрешить локальные конекты к серверу методом trust в pg_hba.conf:

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

Перезапускаем PostgreSQL:

sudo /bin/systemctl restart postgresql-11

Подключаемся к серверу к бд postgres и создаем extension:

CREATE EXTENSION pg_cron;

Теперь можно создать задание в таблице cron.job:

INSERT INTO cron.job (schedule, command, nodename, nodeport, database, username) VALUES ('* * * * *', 'select 1;', '', 5432, 'yourdb', 'postgres');

После этого можно посмотреть в логе PostgreSQL выполняется ли задание. Если есть какие-то проблемы с правами и т.д. это будет
видно. Как только это задание заработает, можно по аналогии создать уже нормальные job-ы.

0

Добавить комментарий

Ваш e-mail не будет опубликован.