периодически выполнять запросы (ala crontab) из базы данных postgresql - PullRequest
5 голосов
/ 14 декабря 2010

Я пытаюсь реплицировать (минимальную) функциональность crontab в таблицу базы данных postgresql с crontab-подобной семантикой, как показано ниже (индексы не показаны для простоты):

create table schedule (
id int not null primary key,
command text
);

create table schedule_detail(
schedule_id int not null references schedule(id),
sd_minute smallint not null,
sd_hour smallint not null,
sd_day smallint not null,
sd_month smallint not null,
sd_year smallint not null,
sd_dayofweek smallint not null
);

Я дошел только до дизайна схемы. Я хотел бы несколько идей о том, как я могу это реализовать. В частности, как реализовать:

  1. Периодический опрос таблицы расписания
  2. Как определить расписание запуска

Имеет ли postgresql какую-либо встроенную (встроенную) функциональность, которую я могу использовать для достижения этой цели?

Ответы [ 2 ]

10 голосов
/ 14 декабря 2010

pgAgent выполнит эту работу.Полная настройка может быть найдена на Postgresonline.com .

2 голосов
/ 09 июня 2016

Я использую для этого psql + crontab. Как это:

Эта запись crontab удаляет содержимое старше 60 дней по мере поступления.

0 16 * * * PGPASSWORD=mypassword psql -Umyuser -dmyschema -c "delete from mytable where created_at < now() - interval '60 days'"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...