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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 125: Строка 125:
 
'''Пример 2:'''Добавим в планировщик задачу с '''"discriminator": "ManyTimesDto"''', указанием "timeSpan": "23:00:00" и количеством запусков '''"times": 5'''. Данная задача будет 5 раз запускать методику с идентификатором 1195 каждые 23 часа. Первый раз запуск методики произойдет в ближайший из указанных в задаче рабочих дней в 13:00.<br>
 
'''Пример 2:'''Добавим в планировщик задачу с '''"discriminator": "ManyTimesDto"''', указанием "timeSpan": "23:00:00" и количеством запусков '''"times": 5'''. Данная задача будет 5 раз запускать методику с идентификатором 1195 каждые 23 часа. Первый раз запуск методики произойдет в ближайший из указанных в задаче рабочих дней в 13:00.<br>
 
Задача была создана ''18 января 2022'' (вторник) до ''13:00'', значит ее ближайший запуск должен быть ''18 января 2022'' в ''13:00''.<br>
 
Задача была создана ''18 января 2022'' (вторник) до ''13:00'', значит ее ближайший запуск должен быть ''18 января 2022'' в ''13:00''.<br>
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px; overflow:auto;">
 +
<div style="font-weight:bold;line-height:1.6;"> Пример описания задачи в формате JSON </div>
 +
<div class="mw-collapsible-content mw-collapsed-content">
 +
<syntaxhighlight lang="JSON" line>
 +
{
 +
    "runUrl": {
 +
      "parameters": [],
 +
      "type": "Post",
 +
      "url": "http://engine/api/Calculation/1248",
 +
      "headers": [],
 +
      "discriminator": "CalcWithParamsTaskUrlDto"
 +
    },
 +
    "checkStateUrl": null,
 +
    "schedule": {
 +
      "timeSpan": "23:00:00",
 +
      "period": {
 +
        "times": 5,
 +
        "discriminator": "ManyTimesDto"
 +
      },
 +
      "runTime": {
 +
        "hours": 12,
 +
        "minutes": 0
 +
      },
 +
      "discriminator": "DaysScheduleDto"
 +
    },
 +
    "isEnable": true,
 +
    "authenticationSettingsId": 1,
 +
    "id": 43,
 +
    "name": "5 раз каждые 23 часа",
 +
    "discriminator": "CalcScheduledTaskDto"
 +
  }
 +
</syntaxhighlight>
 +
</div></div>
  
 
== Записываем каждый день по дням ==
 
== Записываем каждый день по дням ==

Версия 07:09, 18 января 2022

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

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

Для методик с однократным запуском используется период с "discriminator": "OnceDto".
Пример 1: Добавим в планировщик задачу с "discriminator": "OnceDto". Данная задача запустит методику с идентификатором 1206 один раз в 09:01.
Дата создания задачи 18 января 2022 до 09:01, значит методика должна запуститься 18 января 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   }

Пример 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 раз запускать методику с идентификатором 1195 каждые 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": 43,
25     "name": "5 раз каждые 23 часа",
26     "discriminator": "CalcScheduledTaskDto"
27   }

Записываем каждый день по дням

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

Пример описания задачи в формате 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         "Sunday"
19       ],
20       "period": {
21         "discriminator": "InfiniteTimesDto"
22       },
23       "runTime": {
24         "hours": 12,
25         "minutes": 0
26       },
27       "discriminator": "DaysScheduleDto"
28     },
29     "isEnable": true,
30     "authenticationSettingsId": 1,
31     "id": 6,
32     "name": "Каждые ДЕНЬ",
33     "discriminator": "CalcScheduledTaskDto"
34   }

Записываем с промежутком 23 часа

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

Пример описания задачи в формате 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": 4,
24     "name": "Каждые 23 часа",
25     "discriminator": "CalcScheduledTaskDto"
26   }

Записываем дату с 15.01-16.02

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

Пример описания задачи в формате 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         "Tuesday",
13         "Wednesday",
14         "Thursday",
15         "Friday",
16         "Saturday",
17         "Monday",
18         "Sunday"
19       ],
20       "period": {
21         "startDate": "2022-01-15T00:00:00Z",
22         "endDate": "2022-02-16T00:00:00Z",
23         "discriminator": "DatePeriodDto"
24       },
25       "runTime": {
26         "hours": 13,
27         "minutes": 0
28       },
29       "discriminator": "DaysScheduleDto"
30     },
31     "isEnable": true,
32     "authenticationSettingsId": 1,
33     "id": 8,
34     "name": "Каждые ДЕНЬ",
35     "discriminator": "CalcScheduledTaskDto"
36   }