IPS ETL

Описание

Этот проект представляет собой ETL процесс, который собирает данные из API и передаёт их на принимающую сторону.

Установка и настройка

Предварительные требования

  • Docker
  • Docker-compose
  • Git

Шаги для запуска в Docker

  1. Клонируйте репозиторий на вашу машину при помощи команды git clone https://git.jsdio.ru/jsdio/ips_etl.git.
  2. Переименуйте файл .env.dist в .env.
  3. Откройте файл .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 чата, куда отсылать уведомление.
  4. После настройки переменных, запустите проект при помощи docker-compose командой docker-compose up -d.

Шаги для запуска локально

  1. Выполнить п.1-3 из предыдущего списка
  2. Выполнить команду pip install -r requirements.txt
  3. Запускать 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, должны быть предварительно исправлены либо ненужные абитуриенты должны быть отключены через административную панель.

Description
No description provided
Readme 64 KiB
Languages
Python 98.2%
Dockerfile 1.8%