Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 24470cc

Browse files
author
Vladimir Ershov
committed
update readme
1 parent 3feb783 commit 24470cc

File tree

1 file changed

+43
-34
lines changed

1 file changed

+43
-34
lines changed

README.md

Lines changed: 43 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
# pgpro_scheduler - расширение PostgreSQL для управления расписанием задач
22

33
pgpro_scheduler это планировщик задач для СУБД PostgreSQL, который позволяет
4-
планировать исполнение задач в базе и контроллировать их исполнение.
4+
планировать выполнение задач в базе и контроллировать их исполнение.
55

66
Задачи это наборы SQL команд. Расписание выполнения задач задается либо строкой
77
cron, либо указанием конкретных дат запуска, либо JSON объектом, в котором
88
указывается в какие дни часы и минуты задача должна быть запущена. Возможна
99
комбинация методов описания расписания.
1010

1111
Каждая задача имеет возможность для вычисления времени следующего своего
12-
запуска. Набор SQL команд в задаче может обрабатываться в разных транзакциях,
13-
по транзакции на команду, или в одной. В последнем случае имеется возможность
14-
задания SQL конманды, которая будет выполняться в случае аварийного завершения
15-
транзакции.
12+
запуска. Набор SQL команд в задаче может обрабатываться в одной транзакции или
13+
же каждая команда может использовать свою индивидуальную транзакцию.
14+
Имеется возможность задания SQL команды, которая будет выполняться в случае
15+
аварийного завершения транзакции.
1616

1717
## Installation
1818

@@ -36,10 +36,11 @@ pgpro_scheduler это расширение PostgreSQL и не тербует н
3636
Расширение определяет ряд переменных в PostgreSQL (GUC), которые позволяют
3737
управлять его конфигурацией.
3838

39-
* **schedule.enable** - двоичная переменная, которая поределяет разрешено ли
39+
* **schedule.enable** - двоичная переменная, которая определяет разрешено ли
4040
выполнение расширения. По умолчанию: false.
4141
* **schedule.database** - строковая переменная, указывает с какими базам может
42-
работать расширение. По умолчанию - пустая строка.
42+
работать планировщик. Что бы указать несколько баз, нужно перечислить их
43+
имена через запятую. По умолчанию - пустая строка.
4344
* **schedule.nodename** - строковая переменная, содержит название узла.
4445
По умолчанию - master. Если расширение используется на одной машине,
4546
то переменная не имеет смысла.
@@ -81,7 +82,7 @@ PostgreSQL, которые описаны в предыдущем разделе
8182
# SELECT pg_reload_conf();
8283

8384
Если вам не нужны указания различных значений для разных баз данных, то все это
84-
можно занести в конфигурационный файл PostgreSQL и перечитать конфигурацию.
85+
можно занести в конфигурационный файл PostgreSQL, и перечитать конфигурацию.
8586
Перезапуска не требуется.
8687

8788
Пример записей в `$DATADIR/postgresql.conf`, если количество одновременно
@@ -121,23 +122,26 @@ PostgreSQL, которые описаны в предыдущем разделе
121122
Планировщик определяет 2 SQL типа, которые он использует в качестве типов
122123
возвращаемых значений для своих функций.
123124

124-
**cron_rec** - используется для информации о записи задачи в таблице расписания.
125+
### cron_rec
126+
127+
Тип используется для информации о задаче в таблице расписания.
125128

126129
CREATE TYPE schedule.cron_rec AS(
127130
id integer, -- идентификатор задачи
128131
node text, -- имя узла, на котором она будет выполняться
129132
name text, -- имя задачи
130133
comments text, -- комментарий к задаче
131134
rule jsonb, -- правила построения расписания
132-
commands text[], -- sql комманды, которые будут выполненны
135+
commands text[], -- sql команды, которые будут выполнены
133136
run_as text, -- имя пользователя, с которым будет выполняться
134137
-- задача
135138
owner text, -- имя пользователя, который создал задачу
136139
start_date timestamp, -- нижняя граница временного периода, во время
137-
-- которого допускается выполнение задачи
138-
-- граница считаеися открытой если значение NULL
140+
-- которого допускается выполнение задачи,
141+
-- граница считается открытой, если значение NULL
139142
end_date timestamp, -- верхняя граница временного периода, во время
140-
-- граница считаеися открытой если значение NULL
143+
-- которого допускается выполнение задачи,
144+
-- граница считается открытой, если значение NULL
141145
use_same_transaction boolean, -- если true, то набор команд будет
142146
-- выполняться в одной транзакции
143147
last_start_available interval, -- максимальное время, на которое может
@@ -149,7 +153,7 @@ PostgreSQL, которые описаны в предыдущем разделе
149153
max_run_time interval, -- максимальное время выполнения задачи
150154
onrollback text, -- SQL команда, которая будет выполнена в случае
151155
-- аварийного завершения транзакции
152-
next_time_statement text, -- SQL команда, которая будет выполненна
156+
next_time_statement text, -- SQL команда, которая будет выполнена
153157
-- после завершения основного набора SQL
154158
-- команд, которая возвращает следующее
155159
-- время выполнения задачи
@@ -159,22 +163,25 @@ PostgreSQL, которые описаны в предыдущем разделе
159163
-- которые не позволяют ее выполнять далее
160164
);
161165

162-
**cron_job** используется для информации о конкретном исполнении задачи.
166+
###cron_job
167+
168+
Тип используется для информации о конкретном исполнении задачи.
163169

164170
CREATE TYPE schedule.cron_job AS(
165171
cron integer, -- идентификатор задачи
166172
node text, -- имя узла, на котором она выполняться
167173
scheduled_at timestamp, -- запланированное время выполнения
168174
name text, -- имя задачи
169175
comments text, -- комментарий к задаче
170-
commands text[], -- sql комманды для выполнения
171-
run_as text, -- имя пользователя, из-под которого идет выполнение
176+
commands text[], -- sql команды для выполнения
177+
run_as text, -- имя пользователя, с правами которого будет
178+
-- выполнен набор команд
172179
owner text, -- имя пользователя, создавшего задачу
173180
use_same_transaction boolean, -- если true, то набор команд
174181
-- выполняется в одной транзакции
175182
started timestamp, -- время, когда задача была запущена
176183
last_start_available timestamp, -- время, до которого задача должна
177-
-- быть запцщена
184+
-- быть запущена
178185
finished timestamp, -- время, когда задача была завершена
179186
max_run_time interval, -- время, за которое задача должна выполнится,
180187
-- иначе она будет аварийно остановлена
@@ -209,7 +216,7 @@ PostgreSQL, которые описаны в предыдущем разделе
209216
Агрументы:
210217

211218
* **cron** - crontab-like строка для задания расписания выполнения
212-
* **sqls** - набор SQL комманд для выполнения в виде массива строк
219+
* **sqls** - набор SQL команд для выполнения в виде массива строк
213220
* **node** - название узла, опционально
214221

215222
Возвращает идентификатор созданной задачи.
@@ -233,7 +240,7 @@ PostgreSQL, которые описаны в предыдущем разделе
233240
Агрументы:
234241

235242
* **date** - время исполнения задачи
236-
* **sqls** - набор SQL комманд для выполнения в виде массива строк
243+
* **sqls** - набор SQL команд для выполнения в виде массива строк
237244
* **node** - название узла, опционально
238245

239246
Возвращает идентификатор созданной задачи.
@@ -244,7 +251,7 @@ PostgreSQL, которые описаны в предыдущем разделе
244251

245252
Агрументы:
246253

247-
* **dates** - набор дат для выполнения комманды в виде массива
254+
* **dates** - набор дат для выполнения команды в виде массива
248255
* **sql** - строка, SQL команда для выполнения
249256
* **node** - название узла, опционально
250257

@@ -256,8 +263,8 @@ PostgreSQL, которые описаны в предыдущем разделе
256263

257264
Агрументы:
258265

259-
* **dates** - набор дат для выполнения комманды в виде массива
260-
* **sqls** - набор SQL комманд для выполнения в виде массива строк
266+
* **dates** - набор дат для выполнения команды в виде массива
267+
* **sqls** - набор SQL команд для выполнения в виде массива строк
261268
* **node** - название узла, опционально
262269

263270
Возвращает идентификатор созданной задачи.
@@ -269,7 +276,7 @@ PostgreSQL, которые описаны в предыдущем разделе
269276
Единтвенный принимаемый параметр является объектом JSONB, который содержит
270277
информацию о создаваемой задаче.
271278

272-
JSONB объект может содержат следующие ключи, не все они являются обязательными:
279+
JSONB объект может содержать следующие ключи, не все они являются обязательными:
273280

274281
* **name** - имя задачи;
275282
* **node** - имя узла, на котором будет выполняться задача;
@@ -278,15 +285,15 @@ JSONB объект может содержат следующие ключи, н
278285
* **rule** - расписание в виде JSONB объекта (смотри далее);
279286
* **command** - SQL команда для выполнения;
280287
* **commands** - набор SQL команд для выполнения в виде массива;
281-
* **run\_as** - пользователь, с правами которого будет исполняться задача
288+
* **run\_as** - пользователь, с правами которого будет выполняться задача
282289
* **start\_date** - начало временного периода, во время которого возможен
283290
запуск выполнения задачи, если не указано, то нижняя граница не определена;
284291
* **end\_date** - окончание временного периода, во время которого возможен
285292
запуск выполнения задачи, если не указано, то верхняя граница не определена;
286293
* **date** - конкретная дата запуска задачи;
287-
* **dates** - надор дат запуска задачи;
294+
* **dates** - набор дат запуска задачи;
288295
* **use\_same\_transaction** - устанавливает будет ли набор команд выполняться
289-
в рамках одной транзакции. По умолчанию: true TODO ???
296+
в рамках одной транзакции. По умолчанию: false;
290297
* **last\_start\_available** - на какое количество времени может быть отложено
291298
выполнение задачи, если в момент запуска по расписанию уже запущено
292299
максимально возможное количество задач. Время задается в формате
@@ -296,10 +303,10 @@ JSONB объект может содержат следующие ключи, н
296303
* **max\_run\_time** - определяет максимально возможное время выполнения
297304
задачи. Время задается в формате типа `interval`. Если время не определено,
298305
то время исполнения не ограничено. По умолчанию время не определено;
299-
* **onrollback** - SQL команда, которая будет выполнена если транзакция
306+
* **onrollback** - SQL команда, которая будет выполнена, если транзакция
300307
завершится аварийно. По умолчанию неопределена;
301308
* **next\_time\_statement** - SQL команда, которая будет выполнена для
302-
определения следующего времени записи задачи.
309+
определения следующего времени запуска задачи.
303310

304311
Правила для вычисления расписания выполнения задачи могут быть заданы в виде
305312
строки cron (ключ `cron`), а так же в виде JSONВ объекта (ключ `rule`).
@@ -321,9 +328,9 @@ JSONB объект может содержат следующие ключи, н
321328
Все вышеописанные методы задания расписания могут быть скомбинированны между
322329
собой. Но использование хотя бы одного из них обязательно.
323330

324-
Ключ `next_time_statement` используется для того, что бы вычислить слеюующее
331+
Ключ `next_time_statement` используется для того, что бы вычислить следующее
325332
время выполнения задачи. Если он определен, то первое время выполнения задачи
326-
будет рассчитано с помощью методов приведенных выще, а последующие запуски будут
333+
будет рассчитано с помощью методов приведенных выше, а последующие запуски будут
327334
поставленны в расписание в то время, которое вернет SQL команда, указанная
328335
в данном ключе. Команда должна возвращать запись, в первом поле которого
329336
должно сожержаться значение следующего времени запуска типа `timestamp with time
@@ -348,7 +355,7 @@ SQL для вычисления следующего времени запуск
348355

349356
Сами SQL команды задаются либо ключом `command`, либо ключом `commands`.
350357
Первый это одна SQL команда, второй набор команд. На самом деле в ключ
351-
`command` можно передать несколько команд разделенных точкой с запятой. Тогда
358+
`command` можно передать несколько команд, разделенных точкой с запятой. Тогда
352359
они все исполнятся в одной транзакции. Предпочтительно для набора команд
353360
использовать ключ `commands`, так как в сочетании с ключом
354361
`use_same_transaction`, вы можете задавать исполнение команд в одной транзакции
@@ -376,7 +383,6 @@ SQL для вычисления следующего времени запуск
376383

377384
### schedule.set_job_attribute(job_id integer, name text, value text || anyarray)
378385

379-
The function allows to set exact property of existing job.
380386
Функция редактирует какое-то одно конкретное свойство существующей задачи.
381387

382388
Аргументы:
@@ -393,6 +399,9 @@ The function allows to set exact property of existing job.
393399
Функция возвращает двоичное значение, true, если изменение успешное, false -
394400
в случае неуспеха.
395401

402+
Пользователю, если он не суперпользователь, позволено менять свойства только
403+
тех задач, владельцем которых он является.
404+
396405
### schedule.deactivate_job(job_id integer)
397406

398407
Функция деактивирует задачу и приостанавливает ее последующее выполнение.
@@ -467,7 +476,7 @@ The function allows to set exact property of existing job.
467476
Просматривать задачи, исполняемые другими пользователями, может только
468477
суперпользователь.
469478

470-
Описание типа `cron_rec` смотрие в разделе **SQL типы**.
479+
Описание типа `cron_rec` смотрите в разделе **SQL типы**.
471480

472481
### schedule.get_user_active_jobs(username text)
473482

0 commit comments

Comments
 (0)