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 ` . Если они появились там, то это скорее всего означает
0 commit comments