Платформа 3V/Планировщик/Как настроить планировщик: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
 
(не показано 11 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''Статья находится в разработке!'''<br>
+
'''Планировщика (scheduler)''' - это сервис для запуска задач по заранее заданному времени.
Первое использование Планировщика (scheduler):
+
=== Начало работы с планировщиком ===
1. Добавить в Keycloak конфиденциального клиента подробную инструкцию по настройке можно посмотреть [[Платформа_3V/Планировщик/Настройки_аутентификации/Как_настроить_конфиденциального_клиента_на_примере_Keycloak|здесь]];
+
Если вы ранее не использовали планировщик, то вам потребуется выполнить следующие шаги: <br>
1.1 Если у вас не создан конфиденциальный клиент, то его следует создать, следуя инструкции.
+
'''Шаг 1''' Добавить в Keycloak конфиденциального клиента подробную инструкцию по настройке можно посмотреть [[Платформа_3V/Планировщик/Настройки_аутентификации/Как_настроить_конфиденциального_клиента_на_примере_Keycloak|здесь]].<br>
Для начала нажмите на кнопку  создать и заполните Client ID.
+
# Для начала создайте конфиденциального клиента <br>
Далее заполните необходимые настройки на вкладке "Settings".
+
# Далее заполните необходимые настройки на вкладке "Settings".<br>
Настройте необходимый маппинг ролей на вкладке "Service Account Roles".
+
# Настройте необходимый маппинг ролей на вкладке "Service Account Roles".<br>
2. Добавить в scheduler (https://api.3v-cloud.com/scheduler/swagger/index.html#/) новую аутентификацию в раздел Authentication выбирать метод /api/Authentication/Add
+
# Теперь на вкладке "Credentials" в поле "Secret" вы можете посмотреть свой "clientSecret". "clientId" - это "Client ID" вашего конфиденциального клиента в Keycloak.
2.1 Для этого вам необходимо в=авторизоваться в scheduler, для этого используйте токен. Зайдите на стенд и скопируйте значение токена далее вставьте его в окно Available authorizations раздел bearer (apiKey) строку "Value:" и нажмите на кнопку "Authorize".
+
[[Файл:4 шаг (online-video-cutter.com).gif|слева]]<br clear="both" /><br>
После того как вы авторизовались следует добавить новую аутентификацию заполнить шаблон новой аутентификации.  
+
'''Шаг 2''' Добавить в scheduler новую аутентификацию в разделе '''Authentication''' выберите метод '''/api/Authentication/Add'''(перейти в Планировщик можно по ссылке https://*******/scheduler/swagger/index.html#/ например, для cloud это https://api.3v-cloud.com/scheduler/swagger/index.html#/) <br>
 +
# Для начала вам необходимо авторизоваться в scheduler. Авторизация с использованием токена осуществляется следующим образом. Зайдите на стенд и скопируйте значение токена, далее вставьте его в окно '''Available authorizations''' раздел '''bearer (apiKey)''' строку '''"Value:"''' и нажмите на кнопку '''"Authorize"'''.<br>
 +
# После того как вы авторизовались следует добавить новую аутентификацию, для этого используйте метод '''/api/Authentication/Add''' и заполните шаблон новой аутентификации. Подробнее о настройке аутентификации можно узнать [[Платформа_3V/Планировщик/Настройки_аутентификации|здесь]]. Обратите внимание на то, что значение "clientId" пишется с маленькой буквы, как в Keycloak в разделе Clients, в поле Client ID. <br>
 +
<syntaxhighlight lang="JSON">
 
{
 
{
 
   "discriminator": "string",
 
   "discriminator": "string",
Строка 15: Строка 18:
 
   "clientSecret": "string"
 
   "clientSecret": "string"
 
}
 
}
3. После чего вы можете добавлять новые задачи. Для добавления задачи используйте метод /api/Scheduler/AddNewTask а разделе Scheduler.
+
</syntaxhighlight>
для добавления новой задачи можно использовать шаблон
+
[[Файл:Создание новой авторизации.gif|700px|слева]]<br clear="both" /><br>
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; 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>
 +
{
 +
    "settings": {
 +
      "tokenRequestUrl": "https://api.3v-cloud.com/auth/realms/study/protocol/openid-connect/token",
 +
      "clientId": "confidential-test",
 +
      "clientSecret": "********************",
 +
      "discriminator": "ConfidentialClientAuthenticationSettingsDto"
 +
    }
 +
</syntaxhighlight>
 +
</div></div>
 +
'''Шаг 3''' Далее вы можете добавлять новые задачи. Для добавления задачи используйте метод '''/api/Scheduler/AddNewTask''' в разделе '''Scheduler'''. Для добавления новой задачи можно использовать шаблон. подробнее о настройках задач можно узнать [[Платформа_3V/Планировщик/Настройки_задач|здесь]]<br>
 +
 
 +
<syntaxhighlight lang="JSON">
 
{
 
{
 
   "id": 0,
 
   "id": 0,
Строка 56: Строка 75:
 
   "discriminator": "string"
 
   "discriminator": "string"
 
}
 
}
4. Для того чтобы проверить корректно ли отрабатывает ваша задача принудительно запустите ее используя "Принудительно запустить задачу по иденитификатору(/api/Scheduler/RunTask)".
+
</syntaxhighlight>
5. Посмотрите статус задачи используя "Возвращает информацию о состоянии задачи" (/api/Scheduler/GetTaskState) если вы правильно настроили задачу, то должны получить сообщение.
+
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:800px; 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/1064",
 +
      "headers": [],
 +
      "discriminator": "CalcWithParamsTaskUrlDto"
 +
    },
 +
    "checkStateUrl": null,
 +
    "schedule": {
 +
      "timeSpan": "00:10:00",
 +
      "period": {
 +
        "discriminator": "InfiniteTimesDto"
 +
      },
 +
      "runTime": {
 +
        "hours": 1,
 +
        "minutes": 0
 +
      },
 +
      "discriminator": "TimerScheduleDto"
 +
    },
 +
    "isEnable": true,
 +
    "authenticationSettingsId": 1,
 +
    "id": 1,
 +
    "name": "calc_test",
 +
    "discriminator": "CalcScheduledTaskDto"
 +
  }
 +
</syntaxhighlight>
 +
</div></div>
 +
'''Шаг 4''' Для того чтобы проверить корректно ли отрабатывает ваша задача, можно принудительно запустите ее используя '''"Принудительно запустить задачу по идентификатору"(/api/Scheduler/RunTask)'''.<br>
 +
 
 +
'''Шаг 5''' Посмотрите статус задачи используя '''"Возвращает информацию о состоянии задачи" (/api/Scheduler/GetTaskState)''' если вы правильно настроили задачу, то должны получить сообщение.
 +
<syntaxhighlight lang="JSON">
 +
{
 +
  "state": "Finished",
 +
  "lastStartDate": "2021-12-22T07:02:09.9246068Z"
 +
}
 +
</syntaxhighlight>

Текущая версия на 07:45, 22 декабря 2021

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

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

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

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



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

  1. Для начала вам необходимо авторизоваться в scheduler. Авторизация с использованием токена осуществляется следующим образом. Зайдите на стенд и скопируйте значение токена, далее вставьте его в окно Available authorizations раздел bearer (apiKey) строку "Value:" и нажмите на кнопку "Authorize".
  2. После того как вы авторизовались следует добавить новую аутентификацию, для этого используйте метод /api/Authentication/Add и заполните шаблон новой аутентификации. Подробнее о настройке аутентификации можно узнать здесь. Обратите внимание на то, что значение "clientId" пишется с маленькой буквы, как в Keycloak в разделе Clients, в поле Client ID.
{
  "discriminator": "string",
  "tokenRequestUrl": "string",
  "clientId": "string",
  "clientSecret": "string"
}
Создание новой авторизации.gif



Пример 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) если вы правильно настроили задачу, то должны получить сообщение.

{
  "state": "Finished",
  "lastStartDate": "2021-12-22T07:02:09.9246068Z"
}