Files

48 lines
1.5 KiB
Bash
Raw Permalink Normal View History

2026-05-12 18:49:52 +08:00
#!/bin/bash
set -euo pipefail
SUPPLY_URL="${SUPPLY_URL:-http://127.0.0.1:8081}"
CONSUMER="${CONSUMER:-sub2api-bridge}"
CURSOR=""
# Create bridge log table in sub2api database
docker exec sub2api-postgres psql -U sub2api -d sub2api -c "
CREATE TABLE IF NOT EXISTS supply_bridge_log (
id SERIAL PRIMARY KEY,
event_id TEXT NOT NULL,
package_id BIGINT,
status TEXT,
result TEXT,
detail TEXT,
created_at TIMESTAMPTZ DEFAULT NOW()
);" 2>/dev/null || true
while true; do
RESP=$(curl -fsS -X POST "${SUPPLY_URL}/internal/supply-intelligence/gateway/consume-once?consumer=${CONSUMER}&cursor=${CURSOR}" 2>/dev/null || echo '{}')
NEXT_CURSOR=$(echo "$RESP" | jq -r '.next_cursor // empty')
ITEMS_LEN=$(echo "$RESP" | jq '.items | length')
if [ "$ITEMS_LEN" -eq 0 ]; then
sleep 10
continue
fi
echo "$RESP" | jq -c '.items[]' | while read -r item; do
EVENT_ID=$(echo "$item" | jq -r '.event_id')
PKG_ID=$(echo "$item" | jq -r '.package_id')
STATUS=$(echo "$item" | jq -r '.gateway_sync_status')
RESULT=$(echo "$item" | jq -r '.result')
DETAIL=$(echo "$item" | jq -r '.detail // empty')
echo "$(date -Is) bridge event=$EVENT_ID package=$PKG_ID status=$STATUS result=$RESULT"
# Insert into sub2api database
docker exec sub2api-postgres psql -U sub2api -d sub2api -c \
"INSERT INTO supply_bridge_log (event_id, package_id, status, result, detail) VALUES ('$EVENT_ID', $PKG_ID, '$STATUS', '$RESULT', '$DETAIL');" 2>/dev/null || true
done
CURSOR="$NEXT_CURSOR"
if [ -z "$CURSOR" ]; then
sleep 10
fi
done