Load limiting safeguards

This commit is contained in:
2026-05-06 04:04:53 +02:00
parent 47f6971c56
commit 2484ed2815
22 changed files with 374 additions and 144 deletions

View File

@@ -3,22 +3,24 @@ title: Capability Requests
---
```js
import {API} from "./components/config.js";
import {API, apiFetch, pollDelay, sleep} from "./components/config.js";
const POLL = 30_000;
```
```js
// Live poll for capability requests
const reqState = (async function*() {
let failures = 0;
while (true) {
let data = [], ok = false;
try {
const r = await fetch(`${API}/capability-requests/`);
const r = await apiFetch("/capability-requests/");
ok = r.ok;
data = ok ? await r.json() : [];
} catch {}
failures = ok ? 0 : failures + 1;
yield {data, ok, ts: new Date()};
await new Promise(res => setTimeout(res, POLL));
await sleep(pollDelay({ok, base: POLL, failures}));
}
})();
```
@@ -198,14 +200,17 @@ display(Inputs.table(filtered.map(r => ({
```js
// Live poll for catalog entries
const catalogState = (async function*() {
let failures = 0;
while (true) {
let data = [];
let data = [], ok = false;
try {
const r = await fetch(`${API}/capability-catalog/?status=all`);
const r = await apiFetch("/capability-catalog/?status=all");
ok = r.ok;
if (r.ok) data = await r.json();
} catch {}
failures = ok ? 0 : failures + 1;
yield data;
await new Promise(res => setTimeout(res, POLL));
await sleep(pollDelay({ok, base: POLL, failures}));
}
})();
```