78 lines
2.8 KiB
Python
Executable File
78 lines
2.8 KiB
Python
Executable File
#!/usr/bin/env python3
|
||
"""
|
||
强制重启所有服务,确保加载最新代码
|
||
"""
|
||
|
||
import subprocess
|
||
import sys
|
||
import time
|
||
|
||
def main():
|
||
print("🚀 强制重启所有服务,加载最新修正代码")
|
||
print("="*60)
|
||
|
||
# 杀死所有python进程
|
||
print("🔪 杀死所有旧进程...")
|
||
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy python3 -c '
|
||
import os
|
||
import signal
|
||
for proc in os.listdir("/proc"):
|
||
if proc.isdigit():
|
||
try:
|
||
cmdline = open(f"/proc/{proc}/cmdline").read()
|
||
if "test_server" in cmdline or "python" in cmdline and ("zmq" in cmdline or "8003" in cmdline):
|
||
print(f"Killing {proc}: {cmdline[:60]}")
|
||
os.kill(int(proc), signal.SIGKILL)
|
||
except:
|
||
pass
|
||
'
|
||
'''
|
||
subprocess.run(cmd, shell=True)
|
||
time.sleep(3)
|
||
|
||
# 启动RPC服务
|
||
print("\\n🚀 启动RPC服务(修正后版本)...")
|
||
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy bash -c 'cd /app/scripts && python3 test_server_final_correct.py &'"'''
|
||
subprocess.run(cmd, shell=True)
|
||
time.sleep(3)
|
||
|
||
# 检查RPC是否启动
|
||
print("\\n🔍 检查RPC是否启动...")
|
||
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy python3 -c '
|
||
import psutil
|
||
for conn in psutil.net_connections():
|
||
if conn.laddr.port == 8003:
|
||
print(f"✅ RPC running on port 8003, pid={conn.pid}")
|
||
'
|
||
'''
|
||
subprocess.run(cmd, shell=True)
|
||
|
||
# 启动API服务
|
||
print("\\n🚀 启动API服务(端口8090)...")
|
||
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy bash -c 'cd /app/scripts && python3 -m uvicorn backtest_api_final_correct_8090:app --host 0.0.0.0 --port 8090 &'"'''
|
||
subprocess.run(cmd, shell=True)
|
||
time.sleep(3)
|
||
|
||
# 检查API是否启动
|
||
print("\\n🔍 检查API是否启动...")
|
||
cmd = '''ssh admin@192.168.2.154 "export PATH=\\$PATH:/var/packages/Docker/target/usr/bin && docker exec sanguo_vnpy python3 -c '
|
||
import psutil
|
||
for conn in psutil.net_connections():
|
||
if conn.laddr.port == 8090:
|
||
print(f"✅ API running on port 8090, pid={conn.pid}")
|
||
'
|
||
'''
|
||
subprocess.run(cmd, shell=True)
|
||
|
||
print("\\n" + "="*60)
|
||
print("✅ 强制重启完成!")
|
||
print("最终确认代码:")
|
||
print(" backtester_engine = BacktesterEngine(main_engine, event_engine)")
|
||
print(" main_engine.add_app(backtester_engine)")
|
||
print("="*60)
|
||
print("\\n🎯 API地址: http://192.168.2.154:8090/api/backtest/run")
|
||
print("可以开始测试了!")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|