Skip to content

tupikoff/http-multiplexer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание HTTP-мультиплексор:

  • приложение представляет собой http-сервер с одним хендлером,
  • хендлер на вход получает POST-запрос со списком url в json-формате
  • сервер запрашивает данные по всем этим url и возвращает результат клиенту в json-формате
  • если в процессе обработки хотя бы одного из url получена ошибка, обработка всего списка прекращается и клиенту возвращается текстовая ошибка Ограничения:
  • для реализации задачи следует использовать Go 1.13 или выше
  • использовать можно только компоненты стандартной библиотеки Go
  • сервер не принимает запрос если количество url в в нем больше 20
  • сервер не обслуживает больше чем 100 одновременных входящих http-запросов
  • для каждого входящего запроса должно быть не больше 4 одновременных исходящих
  • таймаут на запрос одного url - секунда
  • обработка запроса может быть отменена клиентом в любой момент, это должно повлечь за собой остановку всех операций связанных с этим запросом
  • сервис должен поддерживать 'graceful shutdown'
  • результат должен быть выложен на github

Результаты проверки:

  1. https://github.com/tupikoff/http-multiplexer/blob/v1.0/go.mod#L5 - используется сторонняя библиотека
  2. https://github.com/tupikoff/http-multiplexer/blob/v1.0/http-multiplexer.go#L76 - даже если контекст будет завершён, всё равно будет запущен запрос получения данных клиента
  3. https://github.com/tupikoff/http-multiplexer/blob/v1.0/http-multiplexer.go#L96-L109 - общие обработчики в теле итерации

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages