Микросервис scheduler
Микросервис scheduler служит для управления (создания, изменения и удаления) запланированными задачами.
Доступ к сервису предоставляется по запросу.
Логика работы 
В работе микросервиса используются сущности:
- ScheduledJobDto - содержит информацию о запланированной задаче (идентификатор, описание, триггер, данные),
- ScheduledJobDataDto - содержит информацию о данных, необходимых для выполнения запланированной задачи (тип задачи, URL, метод, параметры запроса, тело запроса, заголовки),
- ScheduledJobTriggerDto - содержит информацию о том, когда и как должна быть выполнена запланированная задача (тип триггера, Cron-выражение, время запуска задачи, промежуток времени в секундах, через который следует повторно запускать задачу).
Аутентификация 
При обращении к сервису аутентификация не нужна.
Service context path 
/api/scheduler/
Настройки и параметры конфигурации 
Параметры конфигурации указываются в Vault.
Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.
{
"env": {
"JAVA_XMS": "XXm",
"JAVA_XMX": "YYYm",
"DB_HOST": "хост для подключения к БД",
"DB_PASSWORD": "пароль для обычного пользователя БД",
"DB_PASSWORD_MIGRATION": "пароль пользователя, выполняющего миграцию"
}
}
{
"env": {
"DB_DATABASE": "ecom-${APP_NAME}-${STAND_NAME}",
"DB_USER": "ecom-${APP_NAME}-user",
"DB_USER_MIGRATION": "ecom-${APP_NAME}-migration"
}
}
Методы микросервиса 
Управление запланированными задачами 
- Обновление или добавление (если такой задачи еще нет) запланированной задачи (сущности ScheduledJobDto) в поисковом движке - PUT запрос, /v1/jobs/{jobId}
jobId - path-параметр, обязательный: уникальный идентификатор задачи
{
"id": "string",
"description": "string",
"trigger": {
"type": "SIMPLE",
"cron": "string",
"startTimestamp": "2025-02-21T14:09:42.437Z",
"periodSeconds": 0
},
"data": {
"jobType": "HTTP_REQUEST",
"url": "http://test:8080/api/test/v1/toggles",
"method": "POST",
"requestParams": {
"active": true
},
"requestBody": "{\"productId\":\"DC123213213\",\"userId\":\"21312321321\"}",
"headers": {
"Content-Type": [
"application/json"
]
}
}
}
204 - операция выполнена успешно, задача обновлена или добавлена
400 - ошибка, не удалось создать задачу
404 - ошибка, задача с указанным ID не найдена
500 - ошибка сервера
- Добавление запланированной задачи (сущности ScheduledJobDto) в поисковый движок - POST запрос, /v1/jobs
Отсутствуют.
{
"id": "string",
"description": "update price daily",
"trigger": {
"type": "CRON_EXPRESSION",
"cron": "0 0 10 * * ?",
"startTimestamp": "2025-02-21T14:16:18.187Z",
"periodSeconds": 1800
},
"data": {
"jobType": "HTTP_REQUEST",
"url": "http://price:8080/api/price/v1/prices/DC321321",
"method": "POST",
"requestParams": {
"active": true
},
"requestBody": "{\"productId\":\"DC123213213\",\"userId\":\"21312321321\"}",
"headers": {
"Content-Type": [
"application/json"
]
}
}
}
201 - операция успешно выполнена, задача создана
400 - ошибка, не удалось создать задачу
500 - ошибка сервера
- Удаление запланированной задачи по ее ID- DELETE запрос, /v1/jobs/{jobId}
jobId - path-параметр, обязательный: уникальный идентификатор задачи
Отсутствует. В ответе приходит только код операции, например, 202.
202 - операция по удалению задачи выполнена успешно
404 - ошибка, задача с указанным ID не найдена
500 - ошибка сервера