Таск-менеджер позволяющий отправлять HTTP, сокет запросы через указанный промежуток времени.
Основная часть проекта. Реализует прослушивание сокета, добавление задачи, сериализацию/десериализацию, отправку данных, ведение статистики. ------------------------------------------------------------------------------- Суть проекта: реализация процесса работающего в фоне (демона), который будет получать данные с сокета и по указанным параметрам и настройкам отправлять запрос в http/сокет/канал. Данные имеют структуру: data: dict (словарь с данными. Формат: dict['title'] - название задачи dict['address'] - вложенный словарь с настройками подключения dict['address']['type'] - тип подключения (http/socket) dict['address']['link'] - адрес подключения. При type = http, link должен начинаться с http/https. При type = socket, link должен быть в формате сокеты (0.0.0.0:5000). При type = pipe, link должен быть равен названию канала. При type = __graph__ не требуется дополнительных параметров. Этот запрос создаст график времени выполнения запроса. dict['settings'] - данные запроса dict['settings']['time'] - время, через которое будет отправлен запрос. dict['settings']['data'] - данные для отправки. Будут сериализовываться. dict['settings']['data']['headers'] - не обязательный параметр для заголовка запроса при type = http. При указании auto, подберёт случайный headers. dict['settings']['data']['method'] - не обязательный параметр для указания метода при http запросе. По умолчанию GET. dict['settings']['data']['data'] - хранит данные отправляемые в канал (pipe), при method=pipe. По этим данным будет создаваться задача (Task) и через указанный промежуток времени будет отправляться запрос (на сокет или HTTP или канал). Мониторинг задач выполняется многопоточным менеджером. Проект позволит автоматизироваться отложенную отправку запросов и не нагружать код и систему разрабатываемого проекта. Не имеет дополнительных зависимостей.
Установите Python (если он не установлен)
Скачать Python3
Клонируйте репозиторий и перейдите в установленную директорию:
git clone https://github.com/Ryize/QTask.git
cd QTask
Установите requirements:
pip3 install -r requirements.txt
Запустите проект:
python3 server.py
Технологии, использованные в проекте: Python 3, requests, socket, Matplotlib