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 });
}
var xhrRequest = function (url, type, callback) {
var xhrRequest = function (url, type, callback, retries) {
if (retries === undefined) {
retries = 2;
}
var xhr = new XMLHttpRequest();
xhr.timeout = 7500;
xhr.onload = function () {
if (xhr.status === 200) {
callback(this.responseText);
} else {
weatherFailure();
switch (xhr.status) {
case 200:
callback(this.responseText);
break;
case 503:
if (retries > 0) {
setTimeout(function () {
xhrRequest(url, type, callback, retries - 1);
}, 5000);
break;
}
// fallthrough
default:
weatherFailure();
}
};
xhr.onerror = function () {