Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Язык программирования: Golang

Интерфейс: консоль

Платформа: Windows, Linux, Docker

Необходимо реализовать чекер генерируемых запросов, проверка которых должна осуществляться с помощью GET-запроса, используя список прокси адресов.

Генерация запросов должна осуществляться с помощью горутин, количество которых задается при запуске программы через файл-конфиг. Генерация горутин функций должна осуществляться в бесконечном цикле for {}, ограничивая кол-во горутин с помощью механизма очередей(кол-во в очереди по кол-ву горутин из конфиг файла).

В качестве целевой функции генерации можно использовать функцию генерации случайного числа.

Проверка запроса через произвольный сетевой ресурс осуществляется (тоже в горутине) в виде GET запроса с ответом в формате json.

Реализовать проверку с произвольным json файлом с полем "result": "success(или failed)".

Сетевые запросы необходимо осуществлять с помощью списка прокси адресов, подгружаемых по указанному url в конфиге.

Реализовать автоматическую смену (для осуществления запроса) и удаление нерабочего прокси адреса из пула загруженных адресов.

Обновление списка прокси серверов должно проводиться на горячую для всех запускаемых горутин (возможно, целесообразно использовать указатель на список адресов).

Реализовать модуль оповещения в случае успешной проверки в виде оповещения через Telegram бота.

Успешные срабатывания необходимо дублировать в отдельный файл success.txt с содержимым запроса(результат функции) и ответом с сервера(ответ GET запроса).

В консоли должна отображаться статистика о количестве генерируемых запросов и сетевых проверок + средние показатели по этим параметрам.

Вывод данной информации и возможные ошибки необходимо записывать в суточные лог файлы.

Программа должна пробовать автоматически перезапускаться при появляющейся ошибке 3 раза, иначе оставить программу запущенной со статусом "error" и включенным сетевым REST-интерфейсом (см. ниже).

В программе необходимо сохранять статистику (загружать при запуске программы):

- количество успешных срабатываний с момента запуска

- последняя скорость генерации целевой функции и сетевых запросов (кол-во/сек)

- средняя скорость  скорость генерации целевой функции и сетевых запросов (кол-во/сек)

Файл конфигурации должен включать в себя:

- запуск парсера при старте (on, off)

- кол-во запускаемых горутин

- целевая ссылка на ресурс для проверки сгенерированных результатов целевой функции

- url-адрес на список прокси серверов

- id чата для телеграм бота

- token телеграм бота

- порт для REST интерфейса

Также необходимо реализовать возможность изменять параметры через REST сервер (любой фреймворк, можно echo):

/status - GET/POST (отображать/задавать(останавливать и запускать) статус программы: enabled, stopped, error)

/thread_count - GET/POST (количество запускаемых горутин)

/proxy_list_url - GET/POST (url-адрес на список прокси)

/proxy_list - GET/POST (получить/задать/обновить список прокси адресов)

/check_url - GET/POST (url-адрес для проверки с использованием прокси)

/telegram_id - GET/POST (id телеграм чата для отчета)

/telegram_token - GET/POST (токен телеграм бота)

/logs - GET (вернуть файл-отчет за последние сутки)

/stats - GET (вывести статистику по скорости генерации запросов и сетевых проверок за секунду + среднюю статистику по этим показателям + количество успешных срабатываний)

/stats_clear - POST (очистка сохраняемой статистики)

Исходный код должен быть подробно закомментирован для последующего разбора и доработки.

год назад
ZedCode
Илья 
26 летРоссия
5 лет в сервисе
Был
год назад
  • Похожие заказы
  • $16

    Присылать уведомление должен, если допустим 5 раз подряд это значение было меньше двух( должна быть возможность изменять и количество значений подряд и величину меньше или больше которой они должны быть ) Например, значения шли в таком ...

    Прикладное ПО1 исполнитель
    Завершен
    2 года назад
  • [url=https://uslugi.yandex.ru/edit-order/a336a41a-6c83-4f41-a3e2-47ee3fbde319?from=suggest] [/url]Необходимо Реализовать представление Indicators_BI. Подробнее в ТЗ. Ссылка на ТЗ https://docs.google.com/document/d/1ex5AlO3IHFy5JS5LfvbLmW8EgqX_ev0LZy2OVbzB2L4/edit#

    Закрыт
    год назад
  • Виконайте наведені нижче завдання на c++ у Visual Studio. 1.  Реалізуйте програму, в якій виконується алгоритм обходу графа на основі пошуку в глибину. 2.  Реалізуйте програму, в якій виконується алгоритм обходу графа на основі пошуку в ...

    Закрыт
    год назад
  • $5

    Это учебная, математическая программа, сделать в Builder Embarcadero 6,10 или 11 на С++. Суть задания решить функцию методом наименьших квадратов. Ниже будет небольшое видео, где показано, как рашается этот метод. По сути там просто пару ...

    Закрыт
    год назад
  • $40

    Visual Studio запустить проект с GIT и поправить ошибку И сделать так чтобы он заработал Бюджет 40$ Сроки выполнения сегодня, оплата по факту готовности БЕЗ авансов Оставляйте телеграмм для связи

    Закрыт
    2 года назад
  • Необходимо написать Telegram-бота на JS. За основу взять исходники от уже имеющегося другого бота. К боту необходимо сделать web-панель управления (админку), основа к которой также уже имеется. ТЗ отправлю лично в Telegram. Заинтересованных прошу оставить ...

    Закрыт
    год назад
  • На основі вже створеного графічного інтерфейсу у фігмі реалізувати автоматичну побудову двох фракталів (дерево Піфагора та острів Міньковського) для різної кількості ітерацій, для різних кольорів ліній. Будь-яка мова програмування, бажано js

    Прикладное ПО1 исполнитель
    Закрыт
    год назад
  • Необходимо написать код на языке програмирования Python. Тема: Методы обучения рекуррентной нейронной сети для решения задачи распознавания на основе популяционных алгоритмов (популяционные могут быть любые). Тобишь сеть учится на популяционных алгоритмах.Также нужен будет такой же ...

    Закрыт
    год назад