Skip to content

Latest commit

 

History

History
46 lines (39 loc) · 2.26 KB

File metadata and controls

46 lines (39 loc) · 2.26 KB

Сервис очереди задач на обработку файлов

Необходимо реализовать сервис, в который можно загрузить задачу на обработку файла. Сам файл можно не хранить физически, достаточно работать с метаданными или путём к файлу. (Либо хранить в S3 (MiniO) или в blob формате в БД) Сервис должен принимать задачи, ставить их в очередь, а также менять статус обработки и сохранять результат.

Что нужно реализовать

API для:

  • создания задачи
  • просмотра задачи по id
  • получения списка задач
  • отмены задачи
  • запуска фоновой обработки

Функциональные требования

  • число одновременно выполняемых задач должно задаваться в конфиге
  • задача должна переходить по статусам корректно
  • ошибки обработки должны сохраняться
  • должны быть фильтры по статусу, типу задачи, времени создания
  • должна быть пагинация
  • задачи должны обрабатываться асинхронно

Дополнительно

Можно реализовать:

  • retry для упавших задач
  • scheduler для поднятия “зависших” задач
  • историю смены статусов
  • приоритет задач
  • отдельную таблицу событий по задаче
  • метрики по времени выполнения

Требования к стеку

  • Kotlin
  • Spring Boot 3.x+
  • асинхронность через Kotlin Coroutines или Spring @Async
  • PostgreSQL (Можно использовать H2)
  • Spring Data JPA
  • Liquibase (Или Flyway)
  • OpenAPI / Swagger
  • JUnit

Будет плюсом

  • Testcontainers
  • docker-compose
  • Micrometer / Actuator
  • MiniO (Если решили хранить файлы в S3)