Подобную задачу в разных вариациях любят давать на собеседованиях: Поочередно выполнить http-запросы по предложенному списку урлов. В случае получения http статус кода 200 на запрос печатаем "<url> - ok". В случае получения http статус кода отличного от 200, либо в случае ошибки печатаем "<url> - not ok". Ссылок может быть очень много, поэтому нужно обрабатывать запросы конкурентно. Например, через рассмотренный ранее паттерн fan-out / fan-in. Решение Добавим функцию, которая будет обрабатывать http-запрос и в зависимости от статус кода записывать нужный результат в канал results. В функции main используем анонимную горутину для отправки URL в канал jobs. Это обеспечивает асинхронную отправку URL воркерам. Воркеры обрабатывают задачи из канала jobs и отправляют результаты в канал results. Каждый воркер в бесконечном цикле ждет URL из канала jobs через select и выполняет HTTP-запрос. Воркеры работают до тех пор, пока из канала jobs есть что считывать - это условие для выхода из цикла f
#12 Конкурентная обработка http-запросов
8 ноября 20238 ноя 2023
348
1 мин