Initial: Mesh-Configs vom 03.09.2026 01:23
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
# /usr/local/bin/duo-master-poller.sh
|
||||
# Master (Agent A): Erkennt unerledigte Tasks nach 3 verpassten Polling-Zyklen (30s)
|
||||
# und markiert ziel_agent als "beliebig" (original_ziel_agent bleibt erhalten).
|
||||
# Nur Master darf diesen Ausfall-Fallback triggern.
|
||||
set -euo pipefail
|
||||
|
||||
TASKS="/srv/work/tasks"
|
||||
VERPASST=30 # Sekunden, nach denen ein Task als übersehen gilt (3 Zyklen à 10s)
|
||||
NOW=$(date +%s)
|
||||
|
||||
for f in "$TASKS/offen"/*.json; do
|
||||
[ -f "$f" ] || continue
|
||||
ANLAGE=$(python3 -c "import json;print(json.load(open('$f')).get('anlage_ts',0))" 2>/dev/null || echo 0)
|
||||
AGE=$(( NOW - ANLAGE ))
|
||||
if [ "$AGE" -gt "$VERPASST" ]; then
|
||||
python3 - "$f" << 'PYEOF'
|
||||
import json, sys
|
||||
f = sys.argv[1]
|
||||
t = json.load(open(f))
|
||||
if t["status"] == "offen":
|
||||
t["original_ziel_agent"] = t.get("original_ziel_agent", t["ziel_agent"])
|
||||
t["ziel_agent"] = "beliebig"
|
||||
t["ausfall_umgeleitet"] = True
|
||||
json.dump(t, open(f, "w"), indent=2)
|
||||
print(f"Ausfall-Fallback: {t['task_id']} -> ziel_agent='beliebig' (orig: {t['original_ziel_agent']})")
|
||||
PYEOF
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user