1
1
#pgpro_scheduler - расширение PostgreSQL для управления расписанием задач
2
2
3
3
pgpro_scheduler это планировщик задач для СУБД PostgreSQL, который позволяет
4
- планировать выполнение задач в базе иконтроллировать их исполнение.
4
+ планировать выполнение задач в базе иконтролировать их исполнение.
5
5
6
6
Задачи это наборы SQL команд. Расписание выполнения задач задается либо строкой
7
7
cron, либо указанием конкретных дат запуска, либо JSON объектом, в котором
@@ -16,7 +16,7 @@ cron, либо указанием конкретных дат запуска, л
16
16
17
17
##Installation
18
18
19
- pgpro_scheduler это расширение PostgreSQL и нетербует никаких специальных
19
+ pgpro_scheduler это расширение PostgreSQL и нетребует никаких специальных
20
20
пререквизитов.
21
21
22
22
Перед сборкой расширения из исходного кода убедитесь, что переменная
@@ -94,8 +94,8 @@ PostgreSQL, которые описаны в предыдущем разделе
94
94
schedule.max_workers = 5
95
95
96
96
Планировщик задач работает с помощью Background Worker'ов. Поэтому должно быть
97
- правильноустановленно значение переменной` max_worker_processes ` . Минимальное
98
- значение переменной может бытьрасчитано по следующей формуле:
97
+ правильноустановлено значение переменной` max_worker_processes ` . Минимальное
98
+ значение переменной может бытьрасcчитано по следующей формуле:
99
99
100
100
> ** N<sub >min</sub > = 1 + N<sub >databases</sub > + MAX_WORKERS<sub >1</sub > + ... + MAX_WORKERS<sub >n</sub >**
101
101
@@ -107,7 +107,7 @@ PostgreSQL, которые описаны в предыдущем разделе
107
107
* ** N<sub >databases</sub >** - это количество баз данных, для которых
108
108
запускается планировщик.
109
109
* ** MAX_WORKERS<sub >n</sub >** - это значение переменной` schedule.max_workers `
110
- в контексте каждой базы данных, для которойзапусткается планировщик.
110
+ в контексте каждой базы данных, для которойзапускается планировщик.
111
111
112
112
##SQL Схема
113
113
@@ -280,7 +280,7 @@ JSONB объект может содержать следующие ключи,
280
280
281
281
* ** name** - имя задачи;
282
282
* ** node** - имя узла, на котором будет выполняться задача;
283
- * ** comments** -коментарии к задаче;
283
+ * ** comments** -комментарии к задаче;
284
284
* ** cron** - строка cron-like, для описания расписания выполнения;
285
285
* ** rule** - расписание в виде JSONB объекта (смотри далее);
286
286
* ** command** - SQL команда для выполнения;
@@ -304,14 +304,14 @@ JSONB объект может содержать следующие ключи,
304
304
задачи. Время задается в формате типа `interval`. Если время не определено,
305
305
то время исполнения не ограничено. По умолчанию время не определено;
306
306
* ** onrollback** - SQL команда, которая будет выполнена, если транзакция
307
- завершится аварийно. По умолчаниюнеопределена ;
307
+ завершится аварийно. По умолчаниюнеопределенна ;
308
308
* ** next\_ time\_ statement** - SQL команда, которая будет выполнена для
309
309
определения следующего времени запуска задачи.
310
310
311
311
Правила для вычисления расписания выполнения задачи могут быть заданы в виде
312
312
строки cron (ключ` cron ` ), а так же в виде JSONВ объекта (ключ` rule ` ).
313
313
314
- Данный объект можетсожержать следующие поля:
314
+ Данный объект можетсодержать следующие поля:
315
315
316
316
* ** minutes** - минуты, целочисленный массив со значениями в диапазоне 0-59
317
317
* ** hours** - часы, целочисленный массив со значениями в диапазоне 0-23
@@ -325,17 +325,17 @@ JSONB объект может содержать следующие ключи,
325
325
Так же расписание может быть задано на конкретную дату или на набор конкретных
326
326
дат. Для этого используйте ключи` date ` или` dates ` соответственно.
327
327
328
- Все вышеописанные методы задания расписания могут бытьскомбинированны между
328
+ Все вышеописанные методы задания расписания могут бытьскомбинированы между
329
329
собой. Но использование хотя бы одного из них обязательно.
330
330
331
331
Ключ` next_time_statement ` используется для того, что бы вычислить следующее
332
332
время выполнения задачи. Если он определен, то первое время выполнения задачи
333
333
будет рассчитано с помощью методов приведенных выше, а последующие запуски будут
334
- поставленны в расписание в то время, которое вернет SQL команда, указанная
334
+ поставлены в расписание в то время, которое вернет SQL команда, указанная
335
335
в данном ключе. Команда должна возвращать запись, в первом поле которого
336
- должносожержаться значение следующего времени запуска типа `timestamp with time
336
+ должносодержаться значение следующего времени запуска типа `timestamp with time
337
337
zone`. Если значение будет другого типа или выполнение данного SQL вызовет
338
- ошибку, то задача будетпомеченна как сломанная, и дальнейшее ее выполнение
338
+ ошибку, то задача будетпомечена как сломанная, и дальнейшее ее выполнение
339
339
будет запрещено.
340
340
341
341
SQL для вычисления следующего времени запускается в случае удачного и не
@@ -347,7 +347,7 @@ SQL для вычисления следующего времени запуск
347
347
* ** success** - транзакция завершилась успешно
348
348
* ** failure** - транзакция завершилась с ошибкой
349
349
* ** running** - транзакция в процессе выполнения
350
- * ** undefined** -неопределена
350
+ * ** undefined** -неопределенна
351
351
352
352
Последние два значения не должны появляться внутри выполнения
353
353
` next_time_statement ` . Если они появились там, то это скорее всего означает