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