55 lines
2.3 KiB
Bash
55 lines
2.3 KiB
Bash
#!/bin/sh
|
||
# 每日定时任务(替代 Windows autorun.cmd)
|
||
# 凌晨 4:00 执行,通过 Docker 内网直连 dlweb 容器
|
||
#
|
||
# 原 autorun.cmd 流程:
|
||
# 1. net stop HttpRequestService (停止 Synchronize.php 轮询)
|
||
# 2. POST SynchronizeReportData.php(同步报表数据)
|
||
# 3. net start HttpRequestService (恢复 Synchronize.php 轮询)
|
||
#
|
||
# Docker 等价实现:通过共享文件 /shared/syncjob.pause 暂停/恢复 syncjob
|
||
|
||
DLWEB_URL="${DLWEB_INTERNAL_URL:-http://dlweb}"
|
||
PAUSE_FILE="/shared/syncjob.pause"
|
||
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')
|
||
|
||
echo "========================================"
|
||
echo "[${TIMESTAMP}] 开始执行每日定时任务"
|
||
echo "========================================"
|
||
|
||
# --------------------------------------------------------
|
||
# 1. 停止同步服务(等价于 net stop HttpRequestService)
|
||
# 创建暂停信号文件,syncjob 检测到后会跳过轮询
|
||
# --------------------------------------------------------
|
||
echo "[$(date '+%H:%M:%S')] 暂停 syncjob 同步服务..."
|
||
touch "${PAUSE_FILE}"
|
||
# 等待当前可能正在执行的请求完成
|
||
sleep 5
|
||
|
||
# --------------------------------------------------------
|
||
# 2. 同步报表数据 (SynchronizeReportData.php)
|
||
# 从游戏数据库同步 report_agent_day、report_game_day 到代理后台
|
||
# 并生成 ct_report_info 报表
|
||
# 与原 autorun.cmd 一致:不设超时、不重试,等待自然执行完毕
|
||
# --------------------------------------------------------
|
||
echo "[$(date '+%H:%M:%S')] 开始同步报表数据..."
|
||
RESULT=$(curl -sf -X POST "${DLWEB_URL}/ext/SynchronizeReportData.php" 2>&1)
|
||
EXIT_CODE=$?
|
||
|
||
if [ $EXIT_CODE -eq 0 ]; then
|
||
echo "[$(date '+%H:%M:%S')] 报表同步完成: ${RESULT}"
|
||
else
|
||
echo "[$(date '+%H:%M:%S')] 报表同步失败(${EXIT_CODE}): ${RESULT}"
|
||
fi
|
||
|
||
# --------------------------------------------------------
|
||
# 3. 恢复同步服务(等价于 net start HttpRequestService)
|
||
# 删除暂停信号文件,syncjob 恢复正常轮询
|
||
# --------------------------------------------------------
|
||
echo "[$(date '+%H:%M:%S')] 恢复 syncjob 同步服务..."
|
||
rm -f "${PAUSE_FILE}"
|
||
|
||
echo "========================================"
|
||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 每日定时任务执行完毕"
|
||
echo "========================================"
|