src | ||
.env.dist | ||
.gitignore | ||
docker-compose.yml | ||
Dockerfile | ||
README.md | ||
requirements.txt |
IPS ETL
Описание
Этот проект представляет собой ETL процесс, который собирает данные из API и передаёт их на принимающую сторону.
Установка и настройка
Предварительные требования
- Docker
- Docker-compose
- Git
Шаги для запуска в Docker
- Клонируйте репозиторий на вашу машину при помощи команды
git clone https://git.jsdio.ru/jsdio/ips_etl.git
. - Переименуйте файл
.env.dist
в.env
. - Откройте файл
.env
и замените значения переменных на свои:API_HOST
: адрес хоста API.API_TOKEN
: токен API.IBLOCKS
: список номеров инфоблоков через запятую без пробелов.DESTINATION_HOST
: адрес хоста назначения.DESTINATION_PORT
: порт назначения.DESTINATION_PROTOCOL
: протокол назначения (http или https).SIGNED
: ключ подписи, должен совпадать на обеих сторонах.LAST_ID
: последний успешно обработанный ID.MAX_WAIT_SIZE
: максимальное время ожидания backoff.USE_NOTIFY
: уведомлять ли о ходе работы обработчика в ТГ,True
либоFalse
BOT_TOKEN
: токен Telegram-бота.CHAT_ID
: ID чата, куда отсылать уведомление.
- После настройки переменных, запустите проект при помощи docker-compose командой
docker-compose up -d
.
Шаги для запуска локально
- Выполнить п.1-3 из предыдущего списка
- Выполнить команду
pip install -r requirements.txt
- Запускать main.py из директории src
Повторная отправка пользователя
Запустить manage.py
из директории src c опцией resend
и атрибутами iblock-id
и element-id
.
Подробее manage.py resend --help
Примеры:
Повторная отправка пользователя локально
python manage.py resend --iblock-id 14 --element-id 2981
Повторная отправка пользователя в Docker
docker exec etl python manage.py resend --iblock-id 14 --element-id 2981
Внимание! Данные всех абитуриентов, следующих за исправляемым ID, должны быть предварительно исправлены либо ненужные абитуриенты должны быть отключены через административную панель.