Kapitel 13/Tutorial.md aktualisiert
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user