Платформа 3V/Планировщик/Настройки аутентификации/Примеры работы задач в Планировщике: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 4: Строка 4:
  
 
== Однократный запуск методики ==
 
== Однократный запуск методики ==
 +
[https://study.3v-cloud.com/navigator/#/home?parentId=1188 Пример работы задачи].<br>
 
Для методик с однократным запуском используется период с '''"discriminator": "OnceDto"'''.<br>
 
Для методик с однократным запуском используется период с '''"discriminator": "OnceDto"'''.<br>
 
'''Пример 1:''' Добавим в планировщик задачу с '''"discriminator": "OnceDto"'''. Данная задача запустит методику с идентификатором 1206 один раз в 09:01. <br>
 
'''Пример 1:''' Добавим в планировщик задачу с '''"discriminator": "OnceDto"'''. Данная задача запустит методику с идентификатором 1206 один раз в 09:01. <br>
Дата создания задачи ''18 января 2022'' до ''09:01'', значит методика должна запуститься 18 января 2022 в 09:01.
+
Дата создания задачи ''19 января 2022'' после ''09:01'', значит методика должна запуститься ''20 января 2022'' в ''09:01''.
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 
<div style="font-weight:bold;line-height:1.6;"> Пример описания задачи в формате JSON </div>
 
<div style="font-weight:bold;line-height:1.6;"> Пример описания задачи в формате JSON </div>
Строка 39: Строка 40:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
</div></div>
 
</div></div>
 +
Результат работы задачи:
 +
[[Файл:Пример 1 (OnceDto,timeSpan).png|400px|слева]]<br clear="both" /><br>
 
'''Пример 2:''' Добавим в планировщик задачу с '''"discriminator": "OnceDto"''' и указанием '''"days": [ ]''' четверг и суббота. Данная задача запустит методику с идентификатором 1190 один раз. Несмотря на то, что в '''"days": [ ]''' указаны все дни, период запуска данной методики указан как '''"discriminator": "OnceDto"''', поэтому методика запустится 1 раз в ближайший из указанных дней в 11:00.<br>
 
'''Пример 2:''' Добавим в планировщик задачу с '''"discriminator": "OnceDto"''' и указанием '''"days": [ ]''' четверг и суббота. Данная задача запустит методику с идентификатором 1190 один раз. Несмотря на то, что в '''"days": [ ]''' указаны все дни, период запуска данной методики указан как '''"discriminator": "OnceDto"''', поэтому методика запустится 1 раз в ближайший из указанных дней в 11:00.<br>
Задача была создана ''18 января 2022'' (вторник), значит ее запуск должен быть ''20 января 2022'' в ''11:00''. [https://study.3v-cloud.com/navigator/#/home?parentId=1188 Результат работы задачи].<br>
+
Задача была создана ''18 января 2022'' (вторник), значит ее запуск должен быть ''20 января 2022'' в ''11:00''.  
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 
<div style="font-weight:bold;line-height:1.6;"> Пример описания задачи в формате JSON </div>
 
<div style="font-weight:bold;line-height:1.6;"> Пример описания задачи в формате JSON </div>
Строка 77: Строка 80:
 
</div></div>
 
</div></div>
 
'''!Изменить скрин по новой задачи'''
 
'''!Изменить скрин по новой задачи'''
[[Файл:запуск методики 1 раз.png|700px|слева]]<br clear="both" /><br>
+
[[Файл:запуск методики 1 раз.png|400px|слева]]<br clear="both" /><br>
  
 
== Запуск методики ограниченный количеством раз ==  
 
== Запуск методики ограниченный количеством раз ==  

Версия 09:52, 20 января 2022

!Страница находится в разработке
Рассмотрим работу планировщика на примере задачи с запуском методики.
Для этого добавим методику расчета, которая будет записывать дату и время её запуска (используем выражение Now()), в методику так же добавим вычислимый параметр Сегодня (используем "defaultValue": "=Today()"). В данной методики каждый день будет изменяться параметр, отображая сегодняшний день, поэтому мы сможем посмотреть как по дням будет работать запуск задачи в планировщике и время запуска каждой задачи.

Однократный запуск методики

Пример работы задачи.
Для методик с однократным запуском используется период с "discriminator": "OnceDto".
Пример 1: Добавим в планировщик задачу с "discriminator": "OnceDto". Данная задача запустит методику с идентификатором 1206 один раз в 09:01.
Дата создания задачи 19 января 2022 после 09:01, значит методика должна запуститься 20 января 2022 в 09:01.

Пример описания задачи в формате JSON
 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   }

Результат работы задачи:

Пример 1 (OnceDto,timeSpan).png



Пример 2: Добавим в планировщик задачу с "discriminator": "OnceDto" и указанием "days": [ ] четверг и суббота. Данная задача запустит методику с идентификатором 1190 один раз. Несмотря на то, что в "days": [ ] указаны все дни, период запуска данной методики указан как "discriminator": "OnceDto", поэтому методика запустится 1 раз в ближайший из указанных дней в 11:00.
Задача была создана 18 января 2022 (вторник), значит ее запуск должен быть 20 января 2022 в 11:00.

Пример описания задачи в формате JSON
 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 раз.png



Запуск методики ограниченный количеством раз

Пример 1: Добавим в планировщик задачу с "discriminator": "ManyTimesDto", указанием "days": [ ] рабочие дни (кроме субботы и воскресенья) и количеством запусков "times": 10. Данная задача будет 10 раз запускать методику с идентификатором 1195 в рабочие дни. Первый раз запуск методики произойдет в ближайший из указанных в задаче рабочих дней в 13:00.
Задача была создана 18 января 2022 (вторник) до 13:00, значит ее ближайший запуск должен быть 18 января 2022 в 13:00.
Результат работы задачи.

Пример описания задачи в формате JSON
 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 часа. Первый раз запуск методики произойдет в ближайший из указанных в задаче рабочих дней в 13:00.
Задача была создана 18 января 2022 до 13:00, значит ее ближайший запуск должен быть 18 января 2022 в 13:00.

Пример описания задачи в формате JSON
 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.

Результат работы задачи.

Пример описания задачи в формате JSON
 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.

Результат работы задачи.

Пример описания задачи в формате JSON
 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. Результат работы задачи.

Пример описания задачи в формате JSON
 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. Задача была создана 18 января 2022 до 11:30, значит ее ближайший запуск должен быть 18 января 2022 в 11:30. Результат работы задачи.

Пример описания задачи в формате JSON
 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": 11,
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   }