Retry Open Meteo API when overloaded

This commit is contained in:
2026-07-05 19:31:41 -04:00
parent c2d09342a1
commit 2e124db4cb
+18 -5
View File
@@ -2,14 +2,27 @@ function weatherFailure() {
Pebble.sendAppMessage({ PKJS_TEMP_BAR_COUNT: -1 }); Pebble.sendAppMessage({ PKJS_TEMP_BAR_COUNT: -1 });
} }
var xhrRequest = function (url, type, callback) { var xhrRequest = function (url, type, callback, retries) {
if (retries === undefined) {
retries = 2;
}
var xhr = new XMLHttpRequest(); var xhr = new XMLHttpRequest();
xhr.timeout = 7500; xhr.timeout = 7500;
xhr.onload = function () { xhr.onload = function () {
if (xhr.status === 200) { switch (xhr.status) {
callback(this.responseText); case 200:
} else { callback(this.responseText);
weatherFailure(); break;
case 503:
if (retries > 0) {
setTimeout(function () {
xhrRequest(url, type, callback, retries - 1);
}, 5000);
break;
}
// fallthrough
default:
weatherFailure();
} }
}; };
xhr.onerror = function () { xhr.onerror = function () {