增加docke部署
This commit is contained in:
54
codes/agent/game-docker/docker/cronjob/daily-task.sh
Normal file
54
codes/agent/game-docker/docker/cronjob/daily-task.sh
Normal file
@@ -0,0 +1,54 @@
|
||||
#!/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 "========================================"
|
||||
Reference in New Issue
Block a user