Необходимо разработать модуль для анализа производительности веб-серверов. Приложение должно обработать большой список URL-адресов, имитируя отправку HTTP-запросов и замеряя время их выполнения. Необходимо создть программу на Go, которая:
- Принимает список URL-адресов (можно задать в коде как слайс строк либо генерировать его программно).
- Параллельно обрабатывать каждый URL с помощью функции-заглушки, которая имитирует HTTP-запрос (time.Sleep со случайной задержкой).
- Собирает результаты обработки (URL, статус «обработан», время выполнения).
- Выводит агрегированный отчёт по всем обработанным URL-адресам.
- Для распараллеливания обработки URL должен использоваться паттерн Fan-out.
- Для сбора результатов от всех рабочих горутин (воркеров) должен использоваться паттерн Fan-in.
- Количество одновременно работающих воркеров должно быть ограничено (реализация Worker Pool).
- Программа должна корректно дожидаться завершения всех задач и выводить итоговый отчёт.
- Используйте каналы и методы синхронизации для исключения гонок данных.
Ниже представлен пример вывода приложения
Результаты мониторинга:
01 http://untuo.org Down 400m
02 http://irdak.info Down 700m
03 https://njddi.org Up 400m
04 https://whmtga.ru Down 900m
05 https://ejevq.info Down 1.3s
06 https://qebecl.ru Down 1.4s
07 http://gnq.org Down 700m
08 https://ynzhpzx.org Up 1s
09 http://udnb.ru Up 1.2s
10 https://lxush.net Up 300m
11 http://wfyryx.info Down 500m
12 http://ohxgfa.ru Up 900m
13 http://hwb.info Up 1.5s
14 http://unaqvq.info Up 600m
15 https://kemi.net Up 300m
16 https://ads.com Down 1.9s
17 https://bggyax.org Down 1.8s
18 https://zkefqxk.com Down 1.4s
19 http://pztn.com Up 1.6s
20 https://twrsqdk.net Down 1.4s
21 https://obuohvr.net Down 1.6s
22 https://vttztra.com Down 1.6s
23 http://kkmiof.org Down 1.3s
24 https://tbrpvkg.info Down 1.4s
25 https://exqkrns.ru Down 1.4s
26 https://ccjivug.ru Up 200m
27 http://aefwmzv.ru Down 1.7s
28 https://appxx.info Up 1s
29 http://jukri.org Down 500m
30 https://ilgxhj.org Down 1.9s
Итого проверено - 30 хостов, доступно - 36%, средняя задержка 1.093333376s