Платформа 3V/Планировщик/Как настроить планировщик

Материал из 3v-wiki
Перейти к навигации Перейти к поиску

Статья находится в разработке!
Планировщика (scheduler) - это сервис для запуска задач по заранее заданному времени.

Начало работы с планировщиком

Если вы ранее не использовали планировщик, то вам потребуетсявыполнить следующие шаги:
Шаг 1 Добавить в Keycloak конфиденциального клиента подробную инструкцию по настройке можно посмотреть здесь;

    1. Для начала создайте конфиденциального клиента
    2. Далее заполните необходимые настройки на вкладке "Settings".
    3. Настройте необходимый маппинг ролей на вкладке "Service Account Roles".
2 шаг (online-video-cutter.com).gif



Теперь у вас есть ключ

4 шаг (online-video-cutter.com).gif



Шаг 2 Добавить в scheduler (https://api.3v-cloud.com/scheduler/swagger/index.html#/) новую аутентификацию в раздел Authentication выбирать метод /api/Authentication/Add

    1. Для этого вам необходимо авторизоваться в scheduler. Авторизация с испозованием токена осуществляется следующим образом.Зайдите на стенд и скопируйте значение токена, далее вставьте его в окно Available authorizations раздел bearer (apiKey) строку "Value:" и нажмите на кнопку "Authorize".

После того как вы авторизовались следует добавить новую аутентификацию для этого заполните шаблон новой аутентификации.

{
  "discriminator": "string",
  "tokenRequestUrl": "string",
  "clientId": "string",
  "clientSecret": "string"
}
Пример JSON описание аутентификации
1 {
2     "settings": {
3       "tokenRequestUrl": "https://api.3v-cloud.com/auth/realms/study/protocol/openid-connect/token",
4       "clientId": "confidential-test",
5       "clientSecret": "********************",
6       "discriminator": "ConfidentialClientAuthenticationSettingsDto"
7     }

3. После чего вы можете добавлять новые задачи. Для добавления задачи используйте метод /api/Scheduler/AddNewTask а разделе Scheduler. для добавления новой задачи можно использовать шаблон

{
  "id": 0,
  "name": "string",
  "runUrl": {
    "type": "Get",
    "url": "string",
    "headers": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "discriminator": "string"
  },
  "checkStateUrl": {
    "type": "Get",
    "url": "string",
    "headers": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "discriminator": "string"
  },
  "schedule": {
    "period": {
      "discriminator": "string"
    },
    "runTime": {
      "hours": 0,
      "minutes": 0
    },
    "discriminator": "string"
  },
  "isEnable": true,
  "authenticationSettingsId": 0,
  "discriminator": "string"
}
Пример JSON описание задачи
 1 {
 2     "runUrl": {
 3       "parameters": [],
 4       "type": "Post",
 5       "url": "http://engine/api/Calculation/1064",
 6       "headers": [],
 7       "discriminator": "CalcWithParamsTaskUrlDto"
 8     },
 9     "checkStateUrl": null,
10     "schedule": {
11       "timeSpan": "00:10:00",
12       "period": {
13         "discriminator": "InfiniteTimesDto"
14       },
15       "runTime": {
16         "hours": 1,
17         "minutes": 0
18       },
19       "discriminator": "TimerScheduleDto"
20     },
21     "isEnable": true,
22     "authenticationSettingsId": 1,
23     "id": 1,
24     "name": "calc_test",
25     "discriminator": "CalcScheduledTaskDto"
26   }

4. Для того чтобы проверить корректно ли отрабатывает ваша задача принудительно запустите ее используя "Принудительно запустить задачу по иденитификатору(/api/Scheduler/RunTask)".

5. Посмотрите статус задачи используя "Возвращает информацию о состоянии задачи" (/api/Scheduler/GetTaskState) если вы правильно настроили задачу, то должны получить сообщение.