Платформа 3V/Планировщик/Описание задач: различия между версиями
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE:Описание задач}} | {{DISPLAYTITLE:Описание задач}} | ||
+ | Задачи в планировщике имеют описание в виде JSON. Планировщик поддерживает несколько видов задач: запрос к сервису, запуск методики или цепочка задач. Для каждой задачи необходимо указать id, время, url. | ||
+ | == Структура задач планировщика == | ||
*'''runUrl''' - [[Платформа 3V/Планировщик/Описание задач#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_Url|настройки Url]] для запуска задачи. | *'''runUrl''' - [[Платформа 3V/Планировщик/Описание задач#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_Url|настройки Url]] для запуска задачи. | ||
*'''checkStateUrl''' - [[Платформа 3V/Планировщик/Описание задач#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_Url|настройки Url]] для проверки состояния задачи. | *'''checkStateUrl''' - [[Платформа 3V/Планировщик/Описание задач#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B8_Url|настройки Url]] для проверки состояния задачи. | ||
Строка 9: | Строка 11: | ||
*'''name''' - наименование задачи. | *'''name''' - наименование задачи. | ||
*'''discriminator''' - [[Платформа 3V/Планировщик/Описание задач#.D0.A2.D0.B8.D0.BF.D1.8B_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87|тип задачи]].<br> | *'''discriminator''' - [[Платформа 3V/Планировщик/Описание задач#.D0.A2.D0.B8.D0.BF.D1.8B_.D0.B7.D0.B0.D0.B4.D0.B0.D1.87|тип задачи]].<br> | ||
− | |||
== Типы задач == | == Типы задач == | ||
Задачи бывают трех видов: | Задачи бывают трех видов: |
Версия 12:04, 27 декабря 2021
Задачи в планировщике имеют описание в виде JSON. Планировщик поддерживает несколько видов задач: запрос к сервису, запуск методики или цепочка задач. Для каждой задачи необходимо указать id, время, url.
Содержание
Структура задач планировщика
- runUrl - настройки Url для запуска задачи.
- checkStateUrl - настройки Url для проверки состояния задачи.
- schedule - расписание задачи.
- isEnable - признак включенности задачи, true - задача включена и будет обрабатываться планировщиком.
- authenticationSettingsId - идентификатор настроек аутентификации.
- taskIds - коллекция идентификаторов задач цепочки, которые будут выполнятся последовательно (только для ChainScheduledTaskDto).
- id - идентификатор задачи.
- name - наименование задачи.
- discriminator - тип задачи.
Типы задач
Задачи бывают трех видов:
- ScheduledTaskDto - выполнение запроса к сервису
- CalcScheduledTaskDto - запуск методики (может быть описана в виде выполнения запроса к сервису)
- ChainScheduledTaskDto - цепочка задач
Настройки Url
Настройки Url для запуска задачи бывают трёх видов:
- TaskUrlDto - любой тип запроса без параметров в теле запроса
пример:
{
"type": "Get",
"url": "https://3v.3v-group.net/repository/api/MetaObjects/Copy?id=17403&parentId=17379",
"headers": null,
"discriminator": "TaskUrlDto"
}
- TaskUrlDto - любой тип запроса без параметров в теле запроса с аутентификацией в сервисе
пример:
{
"type": "Get",
"url": "https://***********/RefreshConnection",
"headers": [
{
"name": "secret",
"value": "*****************"
}
],
"discriminator": "TaskUrlDto"
},
- PostWithParamsTaskUrlDto - POST-запрос со строковым значением (JSON) параметров в теле запроса
пример:
{
"runBodyParams": "[{\"dictionaryId\":0,\"sortingOptions\":null,\"displayValueOptions\":null,\"options\":{\"groupingOptions\":null,\"groupingMethod\":\"Default\",\"sortingOptions\":null,\"rootElement\":null,\"virtualElements\":null,\"displayValueOptions\":null,\"dictionaryId\":6310,\"filter\":null,\"selection\":null,\"hierarchyId\":null},\"attributeValues\":null,\"defaultValue\":null,\"value\":2,\"isMultiselect\":false,\"isEmptyValuePossible\":false,\"isDisableable\":false,\"isDisabled\":false,\"dataControlOptions\":null,\"id\":2,\"name\":null,\"discriminator\":\"DictionaryParameterDto\"}]",
"type": "Post",
"url": "http://front.develop.trv-services.bars.group/engine/api/Calculation/16332",
"headers": [],
"discriminator": "PostWithParamsTaskUrlDto"
}
- CalcWithParamsTaskUrlDto - POST-запрос на запуск методики с описанием параметров в виде параметров методики.
пример:
{
"parameters": [
{
"options": {
"dictionaryId": 6310,
"filter": null,
"hierarchyId": null,
"limit": null
},
"value": 3,
"isMultiselect": false,
"id": 2,
"discriminator": "DictionaryParameterDto"
}
],
"type": "Post",
"url": "http://front.develop.trv-services.bars.group/engine/api/Calculation/16332",
"headers": [],
"discriminator": "CalcWithParamsTaskUrlDto"
}
Настройки Url для проверки состояния задачи аналогичны настройкам Url для запуска задачи.
Свойство type доступно только для TaskUrlDto, для CalcWithParamsTaskUrlDto и PostWithParamsTaskUrlDto оно игнорируется и считается равным Post
Значение | Описание |
---|---|
Get(0) | GET-запрос |
Post(1) | POST-запрос |
Put(2) | PUT-запрос |
Delete(3) | DELETE-запрос |
Расписание
Расписание бывает двух видов:
- DaysScheduleDto - расписание по дням
пример:
"schedule":
{
"days": [
"Monday",
"Friday"
],
"period": {
"discriminator": "InfiniteTimesDto"
},
"runTime": {
"hours": 11,
"minutes": 31
},
"discriminator": "DaysScheduleDto"
}
- TimerScheduleDto - расписание по таймеру.
пример:
"schedule":
{
"timeSpan": "00:05:00",
"period": {
"discriminator": "InfiniteTimesDto"
},
"runTime": {
"hours": 11,
"minutes": 31
},
"discriminator": "TimerScheduleDto"
}
Расписание содержит в себе:
- Period - период действия задачи.
- RunTime - время первого запуска задачи, см. Метод GetSchedulerTime.
Период действия задачи
- DatePeriodDto - период в диапазоне дат.
пример:
"period":
{
"startDate": "2020-10-12T00:00:00Z",
"endDate": "2020-10-14T00:00:00Z",
"discriminator": "DatePeriodDto"
}
- InfiniteTimesDto - бесконечный период.
пример:
"period":
{
"discriminator": "InfiniteTimesDto"
}
- ManyTimesDto - период, ограниченный количеством раз.
пример:
"period":
{
"times": 5,
"discriminator": "ManyTimesDto"
}
- OnceDto - Период, ограниченный единственным разом.
пример:
"period":
{
"discriminator": "OnceDto"
}
Пример
Пример описания включенной задачи, которая 2 раза с интервалом в 2 минуты выполняет запуск методики 8380 со значениями [2,3] параметра на справочнике с идентификатором 8376, с первым запуском в 10:58 по времени планировщика и настройками аутентификации с идентификатором 1:
{
"runUrl": {
"parameters": [
{
"dictionaryId": 8376,
"discriminator": "DictionaryParameterDto",
"isMultiselect": true,
"id": 1,
"value": [
2,
3
]
}
],
"type": "Post",
"url": "http://engine/api/Calculation/8380",
"headers": [],
"discriminator": "CalcWithParamsTaskUrlDto"
},
"checkStateUrl": null,
"schedule": {
"timeSpan": "00:02:00",
"period": {
"times": 2,
"discriminator": "ManyTimesDto"
},
"runTime": {
"hours": 10,
"minutes": 58
},
"discriminator": "TimerScheduleDto"
},
"isEnable": true,
"authenticationSettingsId": 1,
"id": 1,
"name": "calc_example",
"discriminator": "CalcScheduledTaskDto"
}