Go to file
2023-07-18 13:31:34 +03:00
src Скрипт повторной отправки пользователя 2023-07-18 13:19:56 +03:00
.env.dist Обновил Readme и env.dist для возможности отправки уведомлений 2023-06-06 14:22:37 +03:00
.gitignore Initial commit 2023-06-05 11:34:22 +00:00
docker-compose.yml Реализовл подгрузку .env через docker-compose 2023-06-06 14:40:06 +03:00
Dockerfile Реализовл подгрузку .env через docker-compose 2023-06-06 14:40:06 +03:00
README.md Update README.md 2023-07-18 13:31:34 +03:00
requirements.txt Скрипт повторной отправки пользователя 2023-07-18 13:19:56 +03:00

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, должны быть предварительно исправлены либо ненужные абитуриенты должны быть отключены через административную панель.