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

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

Статья находится в разработке!
Первое использование Планировщика (scheduler): 1. Добавить в Keycloak конфиденциального клиента подробную инструкцию по настройке можно посмотреть здесь; 1.1 Если у вас не создан конфиденциальный клиент, то его следует создать, следуя инструкции. Для начала нажмите на кнопку создать и заполните Client ID. Далее заполните необходимые настройки на вкладке "Settings". Настройте необходимый маппинг ролей на вкладке "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 2.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) если вы правильно настроили задачу, то должны получить сообщение.