Kapitel 13/Tutorial.md aktualisiert

This commit is contained in:
2025-09-24 12:18:51 +00:00
parent 26a30716f9
commit a966ee6ddc

View File

@@ -1598,3 +1598,47 @@ Credentials: SSH Clipper
Command (Expression):
`/srv/clipper/bin/create-subtitle "{{ $('Loop Over Items').item.json.data.id }}"`
An dieser Stelle wären wir nun fertig mit dem Einrichtn von Clipper. Wir laden automatisch alle neuen VODs von Twitch herunter, die freigegeben wurden. Erkennen automatisch potentielle Clips, schneiden diese und speichern diese in unserem Langzeitspeicher.
Was aber wenn die Systemressourcen nicht ausreichend sind bzw. so gering sind, dass eine Verarbeitung die Last ins unermessliche steigern würde?
Um dieses Risiko zu mildern können wir ein kurzes Skript vorschalten, dass die Systemlast für 2 Minuten im Augebehält und erst dann die Verarbeitung startet. So können wir sicher sein, dass die Lasspizen abgefangen und eine maximale Auslastung nicht allzu lange anhält.
Wir fügen dafür eirekt zu Beginn des Loops einen Execute Command Node ein.
Diese füllen wir mit dem folgenden Code:
```bash
bash -c '
abbruch=0
timeout=900
ok=0
step=2 # Sekunden
target=20 # Ziel: 120 Sekunden stabil
threshold=15 # = 1.5 × 10 (um Dezimalzahlen zu umgehen)
while [ "$ok" -lt "$target" ]; do
raw_load=$(awk "{print \$1}" /proc/loadavg)
load=$(echo "$raw_load * 10" | awk "{printf \"%d\", \$1}")
if [ "$abbruch" -ge "$timeout" ]; then
echo "[FAIL] Abbruch: Last war nicht stabil genug in $timeout Sekunden"
exit 1
fi
if [ "$load" -le "$threshold" ]; then
ok=$((ok + step))
abbruch=$((abbruch + step))
echo "[INFO] Last stabil für $ok Sekunden"
else
ok=0
abbruch=$((abbruch + step))
"[INFO] Last nicht stabil. Beginne von vorne"
fi
sleep $step
done
echo "[PASS] Last stabil für $ok Sekunden"
exit 0
'
```
Natürlich verzögern wir jede Bearbeitung um mindestens zwei Minuten, aber wir verhinden so die Auslastung wenn wir sie nicht gebrauchen können.