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

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 49 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''!Страница находится в разработке'''<br>
+
'''Рассмотрим работу планировщика на примере задачи с запуском методики.''' <br>
Для демонстрации работы планировщика создадим методику расчета? которая будет записывать дату и время ее запуска (Используем выражение Now()). В методику так же добавим вычислимый параметр Сегодня (используем "defaultValue": "=Today()"). В такой методики каждый день будет изменяться параметр, а соответственно мы сможем посмотреть как по дням будет работать запускаться задача в планировщики и время запуска методики. <br>
+
Для этого добавим методику расчета, которая будет записывать дату и время её запуска (используем выражение Now()), в методику так же добавим вычислимый параметр Сегодня (используем "defaultValue": "=Today()"). В данной методики каждый день будет изменяться параметр, отображая сегодняшний день, поэтому мы сможем посмотреть как по дням будет работать запуск задачи в планировщике и время запуска каждой задачи. <br>
  
1. Записываем 1 раз
+
== Однократный запуск методики ==
 +
[https://study.3v-cloud.com/navigator/#/home?parentId=1188 Пример работы задачи].<br>
 +
Для методик с однократным запуском используется период с '''"discriminator": "OnceDto"'''.<br>
 +
'''Пример 1:''' Добавим в планировщик задачу с '''"discriminator": "OnceDto"'''. Данная задача запустит методику с идентификатором 1206 один раз в 09:01. <br>
 +
Дата создания задачи ''19 января 2022'' после ''09:01'', значит методика должна запуститься ''20 января 2022'' в ''09:01''.
 +
<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/1206",
 +
      "headers": [],
 +
      "discriminator": "CalcWithParamsTaskUrlDto"
 +
    },
 +
    "checkStateUrl": null,
 +
    "schedule": {
 +
      "timeSpan": "00:00:00",
 +
      "period": {
 +
        "discriminator": "OnceDto"
 +
      },
 +
      "runTime": {
 +
        "hours": 9,
 +
        "minutes": 1
 +
      },
 +
      "discriminator": "TimerScheduleDto"
 +
    },
 +
    "isEnable": true,
 +
    "authenticationSettingsId": 1,
 +
    "id": 41,
 +
    "name": "Запуск один раз",
 +
    "discriminator": "CalcScheduledTaskDto"
 +
  }
 +
</syntaxhighlight>
 +
</div></div>
 +
Результат работы задачи:
 +
[[Файл:Пример 1 (OnceDto,timeSpan).png|400px|слева]]<br clear="both" /><br>
 +
'''Пример 2:''' Добавим в планировщик задачу с '''"discriminator": "OnceDto"''' и указанием '''"days": [ ]''' четверг и суббота. Данная задача запустит методику с идентификатором 1190 один раз. Несмотря на то, что в '''"days": [ ]''' указано 2 дня, период запуска данной методики указан как '''"discriminator": "OnceDto"''', поэтому методика запустится 1 раз в ближайший из указанных дней в 11:00.<br>
 +
Задача была создана ''18 января 2022'' (вторник), значит ее запуск должен быть ''20 января 2022'' в ''11:00''.
 +
<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": {
 
     "runUrl": {
Строка 14: Строка 58:
 
     "schedule": {
 
     "schedule": {
 
       "days": [
 
       "days": [
        "Tuesday",
 
        "Wednesday",
 
 
         "Thursday",
 
         "Thursday",
        "Friday",
+
         "Saturday"
         "Saturday",
 
        "Monday",
 
        "Sunday"
 
 
       ],
 
       ],
 
       "period": {
 
       "period": {
Строка 33: Строка 72:
 
     "isEnable": true,
 
     "isEnable": true,
 
     "authenticationSettingsId": 1,
 
     "authenticationSettingsId": 1,
     "id": 5,
+
     "id": 42,
     "name": "Каждые 23 часа",
+
     "name": "Запуск один раз в четверг или субботу",
 
     "discriminator": "CalcScheduledTaskDto"
 
     "discriminator": "CalcScheduledTaskDto"
   },
+
   }
2. Записываем 20 раз
+
</syntaxhighlight>
 +
</div></div>
 +
Результат работы задачи:
 +
[[Файл:запуск методики 1 раз.png|400px|слева]]<br clear="both" /><br>
 +
 
 +
== Запуск методики ограниченный количеством раз ==
 +
Добавим в планировщик задачу с '''"discriminator": "ManyTimesDto"''', указанием '''"timeSpan": "23:00:00"''' и количеством запусков '''"times": 5'''. Данная задача будет 5 раз запускать методику с идентификатором 1248 каждые 23 часа. Первый раз запуск методики произойдет в 12:00.<br>
 +
Задача была создана ''19 января 2022'' до ''12:00'', значит ее ближайший запуск должен быть ''19 января 2022'' в ''12:00'' и далее она будет запускаться через 23 часа 5 раз, значит ее последний запуск должен быть 23 января 2022 в 8: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": {
 
     "runUrl": {
 
       "parameters": [],
 
       "parameters": [],
 
       "type": "Post",
 
       "type": "Post",
       "url": "http://engine/api/Calculation/1195",
+
       "url": "http://engine/api/Calculation/1248",
 
       "headers": [],
 
       "headers": [],
 
       "discriminator": "CalcWithParamsTaskUrlDto"
 
       "discriminator": "CalcWithParamsTaskUrlDto"
Строка 48: Строка 99:
 
     "checkStateUrl": null,
 
     "checkStateUrl": null,
 
     "schedule": {
 
     "schedule": {
       "days": [
+
       "timeSpan": "23:00:00",
        "Tuesday",
 
        "Wednesday",
 
        "Thursday",
 
        "Friday",
 
        "Saturday",
 
        "Monday",
 
        "Sunday"
 
      ],
 
 
       "period": {
 
       "period": {
         "times": 20,
+
         "times": 5,
 
         "discriminator": "ManyTimesDto"
 
         "discriminator": "ManyTimesDto"
 
       },
 
       },
 
       "runTime": {
 
       "runTime": {
         "hours": 13,
+
         "hours": 12,
 
         "minutes": 0
 
         "minutes": 0
 
       },
 
       },
Строка 69: Строка 112:
 
     "isEnable": true,
 
     "isEnable": true,
 
     "authenticationSettingsId": 1,
 
     "authenticationSettingsId": 1,
     "id": 7,
+
     "id": 44,
     "name": "Каждые ДЕНЬ",
+
     "name": "5 раз каждые 23 часа",
 
     "discriminator": "CalcScheduledTaskDto"
 
     "discriminator": "CalcScheduledTaskDto"
 
   }
 
   }
3. Записываем каждый день по дням
+
</syntaxhighlight>
 +
</div></div>
 +
Результат работы задачи:
 +
[[Файл:запуск 5 раз.png|400px|слева]]<br clear="both" /><br>
 +
 
 +
== Запуск методики каждый день ==
 +
[https://study.3v-cloud.com/navigator/#/home?parentId=1191 Результат работы задачи]. <br>
 +
 
 +
Добавим в планировщик задачу с '''"discriminator": "InfiniteTimesDto"''' и указанием '''"days": [ ]''' все дни недели кроме воскресенья. Данная задача будет каждый день кроме воскресенья запускать методику с идентификатором 1192. Первый раз запуск методики произойдет в ближайший из указанных в задаче дней в 12:30.<br>
 +
Задача была создана ''18 января 2022'' (вторник) после ''12:30'', значит ее ближайший запуск должен быть ''19 января 2022'' в ''12:30''.<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": {
 
     "runUrl": {
Строка 90: Строка 147:
 
         "Friday",
 
         "Friday",
 
         "Saturday",
 
         "Saturday",
         "Monday",
+
         "Monday"
        "Sunday"
 
 
       ],
 
       ],
 
       "period": {
 
       "period": {
Строка 104: Строка 160:
 
     "isEnable": true,
 
     "isEnable": true,
 
     "authenticationSettingsId": 1,
 
     "authenticationSettingsId": 1,
     "id": 6,
+
     "id": 45,
     "name": "Каждые ДЕНЬ",
+
     "name": "запуск методики каждый день кроме воскресенья",
 
     "discriminator": "CalcScheduledTaskDto"
 
     "discriminator": "CalcScheduledTaskDto"
   },
+
   }
4. Записываем с промежутком 23 часа
+
</syntaxhighlight>
 +
</div></div>
 +
Результат работы задачи:
 +
 
 +
[[Файл:запуск по дням.png|400px|слева]]<br clear="both" /><br>
 +
 
 +
== Запуск методики по таймеру ==
 +
[https://study.3v-cloud.com/navigator/#/home?parentId=1187 Результат работы задачи]. <br>
 +
Добавим в планировщик задачу с '''"discriminator": "InfiniteTimesDto"''' и указанием '''"timeSpan": "23:00:00"''' . Данная задача будет запускать методику с идентификатором 1185 каждые 23 часа. Первый раз запуск в 10:00.<br>
 +
Задача была создана 19 января 2022 после 4:00, значит ее ближайший запуск должен быть 20 января 2022 в 4: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": {
 
     "runUrl": {
Строка 124: Строка 194:
 
       },
 
       },
 
       "runTime": {
 
       "runTime": {
         "hours": 10,
+
         "hours": 4,
 
         "minutes": 0
 
         "minutes": 0
 
       },
 
       },
Строка 131: Строка 201:
 
     "isEnable": true,
 
     "isEnable": true,
 
     "authenticationSettingsId": 1,
 
     "authenticationSettingsId": 1,
     "id": 4,
+
     "id": 46,
     "name": "Каждые 23 часа",
+
     "name": "Запуск каждые 23 часа",
 
     "discriminator": "CalcScheduledTaskDto"
 
     "discriminator": "CalcScheduledTaskDto"
   },
+
   }
5. Записываем дату с 15.01-16.02
+
</syntaxhighlight>
 +
</div></div>
 +
[[Файл:запуск по таймеру.png|400px|слева]]<br clear="both" /><br>
 +
 
 +
== Запуск методики в заданном диапазоне дат ==
 +
[https://study.3v-cloud.com/navigator/#/home?parentId=1197 Результат работы задачи]. <br>
 +
 
 +
'''Пример 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 (понедельник).<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": {
 
     "runUrl": {
Строка 147: Строка 230:
 
     "schedule": {
 
     "schedule": {
 
       "days": [
 
       "days": [
        "Tuesday",
 
 
         "Wednesday",
 
         "Wednesday",
        "Thursday",
 
 
         "Friday",
 
         "Friday",
        "Saturday",
+
         "Monday"
         "Monday",
 
        "Sunday"
 
 
       ],
 
       ],
 
       "period": {
 
       "period": {
         "startDate": "2022-01-15T00:00:00Z",
+
         "startDate": "2022-01-18T00:00:00Z",
         "endDate": "2022-02-16T00:00:00Z",
+
         "endDate": "2022-01-25T00:00:00Z",
 
         "discriminator": "DatePeriodDto"
 
         "discriminator": "DatePeriodDto"
 
       },
 
       },
 
       "runTime": {
 
       "runTime": {
         "hours": 13,
+
         "hours": 10,
         "minutes": 0
+
         "minutes": 30
 
       },
 
       },
 
       "discriminator": "DaysScheduleDto"
 
       "discriminator": "DaysScheduleDto"
Строка 168: Строка 247:
 
     "isEnable": true,
 
     "isEnable": true,
 
     "authenticationSettingsId": 1,
 
     "authenticationSettingsId": 1,
     "id": 8,
+
     "id": 47,
     "name": "Каждые ДЕНЬ",
+
     "name": "Каждые день до 25.01",
 +
    "discriminator": "CalcScheduledTaskDto"
 +
  }
 +
</syntaxhighlight>
 +
</div></div>
 +
Результат работы задачи:
 +
[[Файл:в периоде по дням.png|400px|слева]]<br clear="both" /><br>
 +
 
 +
'''Пример 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.
 +
 
 +
<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/1250",
 +
      "headers": [],
 +
      "discriminator": "CalcWithParamsTaskUrlDto"
 +
    },
 +
    "checkStateUrl": null,
 +
    "schedule": {
 +
      "timeSpan": "23:00:00",
 +
      "period": {
 +
        "startDate": "2022-01-18T00:00:00Z",
 +
        "endDate": "2022-01-25T00:00:00Z",
 +
        "discriminator": "DatePeriodDto"
 +
      },
 +
      "runTime": {
 +
        "hours": 14,
 +
        "minutes": 30
 +
      },
 +
      "discriminator": "TimerScheduleDto"
 +
    },
 +
    "isEnable": true,
 +
    "authenticationSettingsId": 1,
 +
    "id": 48,
 +
    "name": "Каждые 23 часа до 25.01",
 
     "discriminator": "CalcScheduledTaskDto"
 
     "discriminator": "CalcScheduledTaskDto"
 
   }
 
   }
 +
</syntaxhighlight>
 +
</div></div>
 +
Результат работы задачи:
 +
[[Файл:в периоде.png|400px|слева]]<br clear="both" /><br>

Текущая версия на 05:58, 7 февраля 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": [ ] указано 2 дня, период запуска данной методики указан как "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



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

Добавим в планировщик задачу с "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

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

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

запуск 5 раз.png



Запуск методики каждый день

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

Добавим в планировщик задачу с "discriminator": "InfiniteTimesDto" и указанием "days": [ ] все дни недели кроме воскресенья. Данная задача будет каждый день кроме воскресенья запускать методику с идентификатором 1192. Первый раз запуск методики произойдет в ближайший из указанных в задаче дней в 12:30.
Задача была создана 18 января 2022 (вторник) после 12:30, значит ее ближайший запуск должен быть 19 января 2022 в 12:30.

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

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

запуск по дням.png



Запуск методики по таймеру

Результат работы задачи.
Добавим в планировщик задачу с "discriminator": "InfiniteTimesDto" и указанием "timeSpan": "23:00:00" . Данная задача будет запускать методику с идентификатором 1185 каждые 23 часа. Первый раз запуск в 10:00.
Задача была создана 19 января 2022 после 4:00, значит ее ближайший запуск должен быть 20 января 2022 в 4: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": 4,
17         "minutes": 0
18       },
19       "discriminator": "TimerScheduleDto"
20     },
21     "isEnable": true,
22     "authenticationSettingsId": 1,
23     "id": 46,
24     "name": "Запуск каждые 23 часа",
25     "discriminator": "CalcScheduledTaskDto"
26   }
запуск по таймеру.png



Запуск методики в заданном диапазоне дат

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

Пример 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 (понедельник).

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

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

в периоде по дням.png



Пример 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.

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

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

в периоде.png