From 561fa12538fdd8ad33dca06f108469511c4591ec Mon Sep 17 00:00:00 2001 From: x12sa Date: Mon, 18 May 2026 14:29:48 +0200 Subject: [PATCH] used cached values. and poll javascript allow failed polls --- .../plugins/flomni/flomni_webpage_generator.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/csaxs_bec/bec_ipython_client/plugins/flomni/flomni_webpage_generator.py b/csaxs_bec/bec_ipython_client/plugins/flomni/flomni_webpage_generator.py index 82333d6..6ea3b10 100644 --- a/csaxs_bec/bec_ipython_client/plugins/flomni/flomni_webpage_generator.py +++ b/csaxs_bec/bec_ipython_client/plugins/flomni/flomni_webpage_generator.py @@ -158,7 +158,7 @@ def _safe_get(device_manager, dotpath: str): obj = device_manager.devices for part in dotpath.split("."): obj = getattr(obj, part) - return obj.get() + return obj.get(cached=True) except Exception: return None @@ -2230,16 +2230,23 @@ function render(d){{ handleAudioForStatus(s, prevStatus); }} +let _fetchFailCount=0; +const FETCH_FAIL_THRESHOLD=3; + async function poll(){{ try{{ const r=await fetch(STATUS_JSON, {{cache:'no-store'}}); if(!r.ok) throw new Error('HTTP '+r.status); + _fetchFailCount=0; render(await r.json()); }}catch(e){{ - console.warn('Fetch failed:',e); - document.getElementById('last-update').textContent='fetch failed - retrying...'; - document.getElementById('outdated-banner').classList.add('visible'); - handleStale(true); + _fetchFailCount++; + console.warn('Fetch failed:',e,'('+_fetchFailCount+')'); + document.getElementById('last-update').textContent='fetch failed - retrying\u2026 ('+_fetchFailCount+')'; + if(_fetchFailCount>=FETCH_FAIL_THRESHOLD){{ + document.getElementById('outdated-banner').classList.add('visible'); + handleStale(true); + }} }} }}