Files
mesh-configs/skills/autonomous-ai-agents/mesh-file-task-queue/scripts/duo-master-poller.sh
T

30 lines
1.0 KiB
Bash

#!/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