Первоначально вам следует установить Docker и Docker Compose. Установку можно выполнить, следуя документации на официальных сайтах docs.docker.com и docs.docker.com/compose/.
Вы можете загрузить гит репозиторий или скачать уже готовые образы. Если у вас нет образов, вы также можете собрать их самостоятельно с помощью следующих команд:
-
В папке
executor
выполните команду:docker build -t converter:latest .
-
В папке
scheduler
выполните команду:
docker build -t scheduler:latest .
Далее необходимо настроить сервис путем задания соответствующих переменных окружения. Введите нужные данные в файле env.txt
, а затем переименуйте его в .env
.
- Настройте свой часовой пояс
TZ
. - Определите переменную
KAFKA_NUM_PARTITIONS
(илиTOTAL_PARTITIONS
), устанавливающую количество желаемых обработчиков. - Определите переменные для доступа к базе данных:
POSTGRES_USER
- имя пользователя (DB_USERNAME
)POSTGRES_PASSWORD
- пароль (DB_PASSWORD
)POSTGRES_DB
- название базы данных (DB_NAME
)
- Введите ключи для доступа к MiniO:
MINIO_ACCESS_KEY
- ключ доступа (S3_ACCESS_KEY
)MINIO_SECRET_KEY
- секретный ключ (S3_ENDPOINT_URL
)
- Введите желаемое ыколичество часов хранения обработанного материала в переменную
DESIRED_HOURS
.
Откройте файл docker-compose.yaml
и выполните необходимые изменения в соответствии с инструкцией:
- Проверьте, что никакие порты не заняты в системе. Если необходимо, измените порты в разделе
ports
для сервисов, чтобы избежать конфликтов. - Выставление количества обработчиков:
- Скопируйте сервис
converter-worker-*
столько раз, сколько обработчиков вы желаете (замените*
на число). - Для каждого скопированного сервиса назначьте партицию от 0 до
TOTAL_PARTITIONS-1
(взято из.env
).
Теперь вы можете запустить сервис с помощью следующей команды:
docker-compose up -d
Вы можете проверить состояние сервиса с помощью команды:
docker-compose ps
- Откройте
localhost:8000/docs
в вашем браузере. - Выберите
/convert
. - Выберите желаемый файл и формат.
- В случае исключительных форматов вы получите уведомление в ответе.
- Запомните идентификатор (
file_id
) вашей задачи. - Затем вы можете отправить запрос на
/files/{file_id}
и получить состояние задачи. - В случае ошибки конвертации вам будет предложено повторить отправку задания.
Вы также можете отправлять запросы с помощью утилит, таких как Curl.