Платформа 3V/Планировщик/Как настроить планировщик
Планировщика (scheduler) - это сервис для запуска задач по заранее заданному времени.
Начало работы с планировщиком
Если вы ранее не использовали планировщик, то вам потребуется выполнить следующие шаги:
Шаг 1 Добавить в Keycloak конфиденциального клиента подробную инструкцию по настройке можно посмотреть здесь.
- Для начала создайте конфиденциального клиента
- Далее заполните необходимые настройки на вкладке "Settings".
- Настройте необходимый маппинг ролей на вкладке "Service Account Roles".
- Теперь на вкладке "Credentials" в поле "Secret" вы можете посмотреть свой "clientSecret". "clientId" - это "Client ID" вашего конфиденциального клиента в Keycloak.
Шаг 2 Добавить в scheduler новую аутентификацию в разделе Authentication выберите метод /api/Authentication/Add(перейти в Планировщик можно по ссылке https://*******/scheduler/swagger/index.html#/ например, для cloud это https://api.3v-cloud.com/scheduler/swagger/index.html#/)
- Для начала вам необходимо авторизоваться в scheduler. Авторизация с использованием токена осуществляется следующим образом. Зайдите на стенд и скопируйте значение токена, далее вставьте его в окно Available authorizations раздел bearer (apiKey) строку "Value:" и нажмите на кнопку "Authorize".
- После того как вы авторизовались следует добавить новую аутентификацию, для этого используйте метод /api/Authentication/Add и заполните шаблон новой аутентификации. Подробнее о настройке аутентификации можно узнать здесь. Обратите внимание на то, что значение "clientId" пишется с маленькой буквы, как в Keycloak в разделе Clients, в поле Client ID.
{
"discriminator": "string",
"tokenRequestUrl": "string",
"clientId": "string",
"clientSecret": "string"
}
Шаг 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"
}
Шаг 4 Для того чтобы проверить корректно ли отрабатывает ваша задача, можно принудительно запустите ее используя "Принудительно запустить задачу по идентификатору"(/api/Scheduler/RunTask).
Шаг 5 Посмотрите статус задачи используя "Возвращает информацию о состоянии задачи" (/api/Scheduler/GetTaskState) если вы правильно настроили задачу, то должны получить сообщение.
{
"state": "Finished",
"lastStartDate": "2021-12-22T07:02:09.9246068Z"
}