ReHTTP.net—HTTP Repeater

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

Я столкнулся с проблемой несколько недель назад с сайтом 0pdd.com, одним из моих веб-приложений, которое должно получать HTTP-запросы (известные как webhooks) от GitHub: иногда приложение не работает, GitHub получает ошибку HTTP и никогда не отправляет запрос снова. Запрос просто теряется. Как только приложение снова заработает, нет никакого способа его получить снова. Я понял, что мне нужна сеть сервисов между GitHub и моим веб-приложением, чтобы принимать HTTP-запросы и повторять их позже, если они не могут быть доставлены сразу.

Я создал rehttp.net, чтобы сделать именно это.

Вот URL, который я давал GitHub:

С этого момента следует использовать новый URL-адрес:

Он выглядит очень похоже, но начинается с https://www.rehttp.net/p/. GitHub отправляет все вебхуки PUT/POST запросы на сервер ReHTTP, который сохраняет их во временной базе данных (я использую AWS DynamoDB).

ReHTTP пытается доставить их немедленно. Если что-то идет не так и код ответа сервера HTTP не находится в диапазоне 200-299, следующая попытка производится примерно через час. Затем он повторяет попытку каждый час примерно в течение дня. Если все попытки неудачны, он отказывается от запроса и все.

Что интересно, теперь я могу увидеть сводку моего API здесь. Я вижу, сколько запросов было успешно обработано за последние 24 часа и сколько из них не удалось. Кроме того, у меня есть эту милую кнопку:

И у меня есть URL для проверки статуса всего API:

Я предоставил этот URL-адрес StatusCake для его проверки каждые пять минут. Если что-то пойдет не так, StatusCake отправит мне уведомление по электронной почте и сообщение на телефон.

ReHTTP абсолютно бесплатный. Он написан на Java, и исходный код открыт. Посмотрите его репозиторий на GitHub и внесите свой вклад, если найдете ошибки или просто хотите добавить функцию.

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 04:49

sixnines availability badge   GitHub stars