101 lines
2.8 KiB
Bash
Executable File
101 lines
2.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# 启动回测API服务脚本
|
|
|
|
echo "🚀 启动回测API服务..."
|
|
|
|
# 1. 首先检查容器是否运行
|
|
echo "1. 检查Docker容器状态..."
|
|
ssh admin@192.168.2.154 "export PATH=\$PATH:/var/packages/Docker/target/usr/bin && docker ps | grep sanguo_vnpy"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "❌ 容器未运行,请先启动容器"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ 容器正在运行"
|
|
|
|
# 2. 检查服务是否已经在运行
|
|
echo -e "\n2. 检查服务是否已在运行..."
|
|
|
|
# 尝试连接ZMQ端口
|
|
timeout 5 bash -c "echo >/dev/tcp/192.168.2.154/2014" 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ ZMQ RPC服务 (端口2014) 已在运行"
|
|
ZMQ_RUNNING=true
|
|
else
|
|
echo "❌ ZMQ RPC服务未运行"
|
|
ZMQ_RUNNING=false
|
|
fi
|
|
|
|
# 尝试连接HTTP API端口
|
|
curl -s http://192.168.2.154:8088/docs > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ HTTP API服务 (端口8088) 已在运行"
|
|
API_RUNNING=true
|
|
else
|
|
echo "❌ HTTP API服务未运行"
|
|
API_RUNNING=false
|
|
fi
|
|
|
|
# 3. 启动缺失的服务
|
|
echo -e "\n3. 启动缺失的服务..."
|
|
|
|
if [ "$ZMQ_RUNNING" = false ]; then
|
|
echo "启动ZMQ RPC服务 (test_server.py)..."
|
|
ssh admin@192.168.2.154 "export PATH=\$PATH:/var/packages/Docker/target/usr/bin && docker exec -d sanguo_vnpy python3 /app/scripts/test_server.py"
|
|
sleep 3
|
|
|
|
# 验证启动
|
|
timeout 5 bash -c "echo >/dev/tcp/192.168.2.154/2014" 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ ZMQ RPC服务启动成功"
|
|
else
|
|
echo "❌ ZMQ RPC服务启动失败"
|
|
fi
|
|
fi
|
|
|
|
if [ "$API_RUNNING" = false ]; then
|
|
echo "启动HTTP API服务 (backtest_api.py)..."
|
|
ssh admin@192.168.2.154 "export PATH=\$PATH:/var/packages/Docker/target/usr/bin && docker exec -d sanguo_vnpy python3 /app/scripts/backtest_api.py"
|
|
sleep 3
|
|
|
|
# 验证启动
|
|
curl -s http://192.168.2.154:8088/docs > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ HTTP API服务启动成功"
|
|
else
|
|
echo "❌ HTTP API服务启动失败"
|
|
fi
|
|
fi
|
|
|
|
# 4. 最终状态检查
|
|
echo -e "\n4. 最终服务状态检查..."
|
|
|
|
echo -n "ZMQ RPC服务 (端口2014): "
|
|
timeout 3 bash -c "echo >/dev/tcp/192.168.2.154/2014" 2>/dev/null
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ 运行正常"
|
|
else
|
|
echo "❌ 未运行"
|
|
fi
|
|
|
|
echo -n "HTTP API服务 (端口8088): "
|
|
curl -s -I http://192.168.2.154:8088/docs 2>/dev/null | grep -q "200 OK"
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ 运行正常"
|
|
echo " Swagger UI: http://192.168.2.154:8088/docs"
|
|
else
|
|
echo "❌ 未运行"
|
|
fi
|
|
|
|
# 5. 测试回测功能
|
|
echo -e "\n5. 测试回测功能..."
|
|
if [ "$ZMQ_RUNNING" = true ] && [ "$API_RUNNING" = true ]; then
|
|
echo "运行简单回测测试..."
|
|
python3 test_api_timeout_simple.py
|
|
else
|
|
echo "跳过回测测试(服务未完全启动)"
|
|
fi
|
|
|
|
echo -e "\n🎯 启动完成!"
|
|
echo "请通知各位将军可以开始测试回测API了。" |