проект в Golang Skill Tree

Проверка сайтов с воркерами Go

Создайте проверку на Go с результатом для каждой задачи, различением ошибок и ограниченным пулом воркеров для локальных HTTP-целей.

ПроектGolang

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Проверка сайтов с воркерами Go — практический проект для изучающих Go, готовых координировать параллельную работу. Помогите организатору мероприятия проверить подготовленные локальные веб-страницы перед открытием. Создайте многоразовую команду, которая выполняет настоящие HTTP-запросы и сохраняет ровно один достоверный результат JSON для каждой задачи, включая отдельные задачи с одинаковым URL.

Две пошаговые лабораторные работы сначала создают полноценную проверку одной цели, затем распределяют задачи между небольшим пулом воркеров. Одно самостоятельное задание проверяет другой маршрут мероприятия с верхним пределом в три воркера. Каждая часть начинается с собственной среды и данных. Планируйте примерно 155 минут: это оценка автора с учётом чтения и обычных исправлений.

Чему вы научитесь

После завершения курса вы сможете:

  • сохранять ID и исходный URL каждой задачи, выдавая ровно один результат даже при сбое другой задачи;
  • различать отказ HTTP, неожиданное содержимое, ошибки соединения и тайм-ауты, включая сбои при чтении тела ответа;
  • задавать конечный клиентский тайм-аут для HTTP-запросов и закрывать полученные тела ответов;
  • распределять задачи с помощью горутин и каналов, объяснять ответственность за закрытие каналов и ждать воркеров через sync.WaitGroup;
  • собирать результаты без одновременной записи в общую коллекцию и наблюдать реальные перекрывающиеся запросы в пределах лимита воркеров;
  • сохранять и изучать полный отчёт JSON, допускать разный порядок завершения и обрабатывать пустой ввод или меньше задач, чем воркеров.

Для кого этот курс

Курс предназначен для изучающих Go, которые хотят объединить знакомые функции и структуры данных в полезную параллельную утилиту командной строки.

Предварительные требования: Базовая навигация в терминале, функции, структуры, срезы, модули и базовый синтаксис каналов Go, а также курс Создание API бюро находок или равноценный опыт с HTTP. Горутины, ответственность за закрытие каналов, sync.WaitGroup, тайм-ауты клиента и освобождение тел ответов объясняются до использования.

Учебная среда: LabEx предоставляет Go, начальный код, контролируемые локальные HTTP-цели и WebIDE в браузере. В терминале Workspace вы запускаете проверку и читаете отчёт JSON без локальной установки Go. Команды, содержимое целей и вывод программы остаются на английском.

Часто задаваемые вопросы

Буду ли я сканировать публичные сайты?

Вы проверяете только подготовленные локальные цели с конечными задержками. Это инструмент разовой проверки; непрерывный мониторинг, оповещения и гарантии для произвольных условий Интернета не входят в проект.

Останавливает ли сбой одной цели остальные проверки?

Каждая входная задача должна получить собственный результат. Отказ HTTP со стороны сервера отличается от ошибки соединения. По истечении настроенного тайм-аута клиент прекращает ждать медленный ответ; целевой сервер может завершить обработку позже. Если ответ получен, отчёт сохраняет его HTTP-статус.

Что меняется в самостоятельном задании?

Меняются ID задач, URL и ожидаемое содержимое, а лимит становится равным трём воркерам. Вы повторно используете изученные механизмы. Результаты могут приходить в любом порядке; полнота покрытия задач и ограничение параллельности остаются обязательными.

Преподаватель

labby
Labby
Labby is the LabEx teacher.

Рекомендовано для вас

no data