Как прекратить выполнение HTTP-запросов после первой ошибки?
Передайте всем запросам общий отменяемый context и вызовите cancel при первой ошибке. Каждый запрос должен быть создан с этим контекстом, а результаты — корректно собраны.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
Передайте всем запросам общий отменяемый context и вызовите cancel при первой ошибке. Каждый запрос должен быть создан с этим контекстом, а результаты — корректно собраны.
Читать ответСопоставьте latency с ошибками, RPS, CPU, памятью, GC, очередями, пулом соединений и задержками зависимостей. Средняя задержка без разреза по методу малоинформативна.
Читать ответВ HTTP/1.1 соединения обычно постоянные и могут обслужить несколько запросов. Keep-alive экономит установление TCP и TLS, если стороны корректно определяют границы сообщений.
Читать ответОтмена клиентом может отменить серверный контекст запроса, но не откатывает уже выполненные действия автоматически. Обработчик и зависимости должны поддерживать кооперативную отмену.
Читать ответНа прикладном уровне клиент формирует HTTP-метод, адрес ресурса, заголовки и необязательное тело; сервер маршрутизирует запрос и возвращает статус, заголовки и тело ответа.
Читать ответHTTP/1.1 передаёт строку запроса, заголовки и необязательное тело. HTTP/2 сохраняет HTTP-семантику, но кодирует обмен бинарными фреймами и мультиплексирует потоки соединения.
Читать ответСоздайте ServeMux, зарегистрируйте обработчик и декодируйте ограниченное тело запроса. После валидации установите Content-Type и запишите JSON через ResponseWriter.
Читать ответHTTPS — HTTP с защитой TLS: шифрованием, контролем целостности и проверкой сервера. Перед обменом данными стороны согласуют параметры защиты и ключи соединения.
Читать ответВ Node.js используйте встроенный модуль node:http. createServer получает обработчик запроса, а response.end отправляет текст и завершает ответ.
Читать ответКаждая попытка получает собственный AbortController и таймер. После ошибки запрос повторяется; maxRetries означает дополнительные повторы, то есть всего максимум maxRetries + 1 попыток.
Читать ответДля имитации запускайте задачи последовательно через await, измеряйте их длительность и обновляйте число выполненных запросов. Повторный Start блокируйте до завершения.
Читать ответОтмену нужно передавать через всю цепочку: ожидание задачи, выполнение запроса и чтение ответа. Таймаут одной операции не должен оставлять фоновые операции работающими бесконечно.
Читать ответ