Платформа 3V/Планировщик/Настройки аутентификации/Примеры работы задач в Планировщике
!Страница находится в разработке
Рассмотрим работу планировщика на примере задачи с запуском методики.
Для этого добавим методику расчета, которая будет записывать дату и время её запуска (используем выражение Now()), в методику так же добавим вычислимый параметр Сегодня (используем "defaultValue": "=Today()"). В данной методики каждый день будет изменяться параметр, отображая сегодняшний день, поэтому мы сможем посмотреть как по дням будет работать запуск задачи в планировщике и время запуска каждой задачи.
Содержание
Однократный запуск методики
Пример работы задачи.
Для методик с однократным запуском используется период с "discriminator": "OnceDto".
Пример 1: Добавим в планировщик задачу с "discriminator": "OnceDto". Данная задача запустит методику с идентификатором 1206 один раз в 09:01.
Дата создания задачи 19 января 2022 после 09:01, значит методика должна запуститься 20 января 2022 в 09:01.
1 {
2 "runUrl": {
3 "parameters": [],
4 "type": "Post",
5 "url": "http://engine/api/Calculation/1206",
6 "headers": [],
7 "discriminator": "CalcWithParamsTaskUrlDto"
8 },
9 "checkStateUrl": null,
10 "schedule": {
11 "timeSpan": "00:00:00",
12 "period": {
13 "discriminator": "OnceDto"
14 },
15 "runTime": {
16 "hours": 9,
17 "minutes": 1
18 },
19 "discriminator": "TimerScheduleDto"
20 },
21 "isEnable": true,
22 "authenticationSettingsId": 1,
23 "id": 41,
24 "name": "Запуск один раз",
25 "discriminator": "CalcScheduledTaskDto"
26 }
Результат работы задачи:
Пример 2: Добавим в планировщик задачу с "discriminator": "OnceDto" и указанием "days": [ ] четверг и суббота. Данная задача запустит методику с идентификатором 1190 один раз. Несмотря на то, что в "days": [ ] указано 2 дня, период запуска данной методики указан как "discriminator": "OnceDto", поэтому методика запустится 1 раз в ближайший из указанных дней в 11:00.
Задача была создана 18 января 2022 (вторник), значит ее запуск должен быть 20 января 2022 в 11:00.
1 {
2 "runUrl": {
3 "parameters": [],
4 "type": "Post",
5 "url": "http://engine/api/Calculation/1190",
6 "headers": [],
7 "discriminator": "CalcWithParamsTaskUrlDto"
8 },
9 "checkStateUrl": null,
10 "schedule": {
11 "days": [
12 "Thursday",
13 "Saturday"
14 ],
15 "period": {
16 "discriminator": "OnceDto"
17 },
18 "runTime": {
19 "hours": 11,
20 "minutes": 0
21 },
22 "discriminator": "DaysScheduleDto"
23 },
24 "isEnable": true,
25 "authenticationSettingsId": 1,
26 "id": 42,
27 "name": "Запуск один раз в четверг или субботу",
28 "discriminator": "CalcScheduledTaskDto"
29 }
Результат работы задачи:
Запуск методики ограниченный количеством раз
Пример 1: Добавим в планировщик задачу с "discriminator": "ManyTimesDto", указанием "days": [ ] рабочие дни (кроме субботы и воскресенья) и количеством запусков "times": 10. Данная задача будет 10 раз запускать методику с идентификатором 1195 в рабочие дни. Первый раз запуск методики произойдет в ближайший из указанных в задаче рабочих дней в 13:00.
Задача была создана 18 января 2022 (вторник) до 13:00, значит ее ближайший запуск должен быть 18 января 2022 в 13:00.
Результат работы задачи.
1 {
2 "runUrl": {
3 "parameters": [],
4 "type": "Post",
5 "url": "http://engine/api/Calculation/1195",
6 "headers": [],
7 "discriminator": "CalcWithParamsTaskUrlDto"
8 },
9 "checkStateUrl": null,
10 "schedule": {
11 "days": [
12 "Tuesday",
13 "Wednesday",
14 "Thursday",
15 "Friday",
16 "Monday"
17 ],
18 "period": {
19 "times": 10,
20 "discriminator": "ManyTimesDto"
21 },
22 "runTime": {
23 "hours": 13,
24 "minutes": 0
25 },
26 "discriminator": "DaysScheduleDto"
27 },
28 "isEnable": true,
29 "authenticationSettingsId": 1,
30 "id": 43,
31 "name": "По будням 10 раз",
32 "discriminator": "CalcScheduledTaskDto"
33 }
Пример 2:Добавим в планировщик задачу с "discriminator": "ManyTimesDto", указанием "timeSpan": "23:00:00" и количеством запусков "times": 5. Данная задача будет 5 раз запускать методику с идентификатором 1248 каждые 23 часа. Первый раз запуск методики произойдет в 12:00.
Задача была создана 19 января 2022 до 12:00, значит ее ближайший запуск должен быть 19 января 2022 в 12:00 и далее она будет запускаться через 23 часа 5 раз, значит ее последний запуск должен быть 23 января 2022 в 8:00
1 {
2 "runUrl": {
3 "parameters": [],
4 "type": "Post",
5 "url": "http://engine/api/Calculation/1248",
6 "headers": [],
7 "discriminator": "CalcWithParamsTaskUrlDto"
8 },
9 "checkStateUrl": null,
10 "schedule": {
11 "timeSpan": "23:00:00",
12 "period": {
13 "times": 5,
14 "discriminator": "ManyTimesDto"
15 },
16 "runTime": {
17 "hours": 12,
18 "minutes": 0
19 },
20 "discriminator": "DaysScheduleDto"
21 },
22 "isEnable": true,
23 "authenticationSettingsId": 1,
24 "id": 44,
25 "name": "5 раз каждые 23 часа",
26 "discriminator": "CalcScheduledTaskDto"
27 }
Результат работы задачи:
Запуск методики каждый день
Добавим в планировщик задачу с "discriminator": "InfiniteTimesDto" и указанием "days": [ ] все дни недели кроме воскресенья. Данная задача будет каждый день кроме воскресенья запускать методику с идентификатором 1192. Первый раз запуск методики произойдет в ближайший из указанных в задаче дней в 12:00.
Задача была создана 18 января 2022 (вторник) до 12:00, значит ее ближайший запуск должен быть 18 января 2022 в 12:00.
1 {
2 "runUrl": {
3 "parameters": [],
4 "type": "Post",
5 "url": "http://engine/api/Calculation/1192",
6 "headers": [],
7 "discriminator": "CalcWithParamsTaskUrlDto"
8 },
9 "checkStateUrl": null,
10 "schedule": {
11 "days": [
12 "Tuesday",
13 "Wednesday",
14 "Thursday",
15 "Friday",
16 "Saturday",
17 "Monday"
18 ],
19 "period": {
20 "discriminator": "InfiniteTimesDto"
21 },
22 "runTime": {
23 "hours": 12,
24 "minutes": 0
25 },
26 "discriminator": "DaysScheduleDto"
27 },
28 "isEnable": true,
29 "authenticationSettingsId": 1,
30 "id": 45,
31 "name": "запуск методики каждый день кроме воскресенья",
32 "discriminator": "CalcScheduledTaskDto"
33 }
Результат работы задачи: Дополнить!
Запуск методики по таймеру
Добавим в планировщик задачу с "discriminator": "InfiniteTimesDto" и указанием "timeSpan": "23:00:00" . Данная задача будет запускать методику с идентификатором 1185 каждые 23 часа. Первый раз запуск в 10:00.
Задача была создана 18 января 2022 до 10:00, значит ее ближайший запуск должен быть 18 января 2022 в 10:00.
1 {
2 "runUrl": {
3 "parameters": [],
4 "type": "Post",
5 "url": "http://engine/api/Calculation/1185",
6 "headers": [],
7 "discriminator": "CalcWithParamsTaskUrlDto"
8 },
9 "checkStateUrl": null,
10 "schedule": {
11 "timeSpan": "23:00:00",
12 "period": {
13 "discriminator": "InfiniteTimesDto"
14 },
15 "runTime": {
16 "hours": 10,
17 "minutes": 0
18 },
19 "discriminator": "TimerScheduleDto"
20 },
21 "isEnable": true,
22 "authenticationSettingsId": 1,
23 "id": 46,
24 "name": "Запуск каждые 23 часа",
25 "discriminator": "CalcScheduledTaskDto"
26 }
Запуск методики в заданном диапазоне дат
Результат работы задачи.
Пример 1: Добавим в планировщик задачу с "discriminator": "DatePeriodDto", указанием "startDate" и "endDate" (18.01.2022 - 25.01.2022) и указанием "days": [ ] понедельник, среда и пятница. Данная задача будет запускать методику с идентификатором 1198 каждый понедельник, среду или пятницу в 10:30 с 18.01.2022 по 25.01.2022. Первый раз запуск задачи будет в ближайший указанный в задачи день в 10:30.
Задача была создана 18 января 2022 (вторник) до 10:00, значит ее ближайший запуск должен быть 19 января 2022 (среда) в 10:30, затем 21 января 2022 (пятница) в 10:30 и последний запуск 24 января 2022 (понедельник).
1 {
2 "runUrl": {
3 "parameters": [],
4 "type": "Post",
5 "url": "http://engine/api/Calculation/1198",
6 "headers": [],
7 "discriminator": "CalcWithParamsTaskUrlDto"
8 },
9 "checkStateUrl": null,
10 "schedule": {
11 "days": [
12 "Wednesday",
13 "Friday",
14 "Monday"
15 ],
16 "period": {
17 "startDate": "2022-01-18T00:00:00Z",
18 "endDate": "2022-01-25T00:00:00Z",
19 "discriminator": "DatePeriodDto"
20 },
21 "runTime": {
22 "hours": 10,
23 "minutes": 30
24 },
25 "discriminator": "DaysScheduleDto"
26 },
27 "isEnable": true,
28 "authenticationSettingsId": 1,
29 "id": 47,
30 "name": "Каждые день до 25.01",
31 "discriminator": "CalcScheduledTaskDto"
32 }
Результат работы задачи:
Пример 2: Добавим в планировщик задачу с "discriminator": "DatePeriodDto", указанием "startDate" и "endDate" (18.01.2022 - 25.01.2022) и указанием "timeSpan": "23:00:00". Данная задача будет запускать методику с идентификатором 1250 каждые 23 часа с 18.01.2022 по 25.01.2022. Первый раз запуск задачи будет в 11:30. Задача была создана 19 января 2022 до 14:30, значит ее ближайший запуск должен быть 19 января 2022 в 14:30, а последний 24 января 2022 в 9:30.
1 {
2 "runUrl": {
3 "parameters": [],
4 "type": "Post",
5 "url": "http://engine/api/Calculation/1250",
6 "headers": [],
7 "discriminator": "CalcWithParamsTaskUrlDto"
8 },
9 "checkStateUrl": null,
10 "schedule": {
11 "timeSpan": "23:00:00",
12 "period": {
13 "startDate": "2022-01-18T00:00:00Z",
14 "endDate": "2022-01-25T00:00:00Z",
15 "discriminator": "DatePeriodDto"
16 },
17 "runTime": {
18 "hours": 14,
19 "minutes": 30
20 },
21 "discriminator": "TimerScheduleDto"
22 },
23 "isEnable": true,
24 "authenticationSettingsId": 1,
25 "id": 48,
26 "name": "Каждые 23 часа до 25.01",
27 "discriminator": "CalcScheduledTaskDto"
28 }
Результат работы задачи: