#!/bin/bash
# 远程服务器 precheck / pending_refresh 持续监控
# 每 15 分钟采样一次，追加写入日志（按天一个文件）
# 用法: nohup ./precheck-monitor.sh [日志文件] >/dev/null 2>&1 &

LOG="${1:-/Users/yinchengliang/soft/tiktok/newdata/precheck-monitor-$(date +%Y%m%d).log}"
TARGETS="'CZ','GR','HU','PT','ES','PL','NL','BE','DE','FR','IT','IE','AT','US'"
SERVER="http://117.71.53.99:17301"

count_sql() { # $1 = 已 URL 编码的 SQL
  curl -s --max-time 20 "$SERVER/api/db-query?sql=$1" | python3 -c '
import json, sys
try:
  print(json.load(sys.stdin)["rows"][0]["cnt"])
except Exception:
  print("ERR")
'
}

while true; do
  TS=$(date "+%Y-%m-%d %H:%M:%S")
  THRESHOLD=$(( $(date +%s)000 - 172800000 ))

  SQL_PC=$(python3 -c "
import urllib.parse
print(urllib.parse.quote(\"SELECT COUNT(*) AS cnt FROM jobs WHERE tt_seller=1 AND verified=0 AND (pending_refresh IS NULL OR pending_refresh=0) AND COALESCE(refresh_time, 1452000000000) < $THRESHOLD AND location_created IN ($TARGETS)\"))
")
  SQL_PR=$(python3 -c "
import urllib.parse
print(urllib.parse.quote(\"SELECT COUNT(*) AS cnt FROM jobs WHERE tt_seller=1 AND verified=0 AND pending_refresh=1 AND location_created IN ($TARGETS)\"))
")

  PC=$(count_sql "$SQL_PC")
  PR=$(count_sql "$SQL_PR")
  echo "$TS precheck=$PC pending_refresh=$PR" >> "$LOG"
  sleep 900
done
