vnpy/examples/WebTrader/run.py

68 lines
1.7 KiB
Python

# encoding: UTF-8
"""
无人值守运行服务
"""
from __future__ import print_function
from time import sleep
from datetime import datetime, time
from multiprocessing import Process
from webServer import run as runWebServer
from tradingServer import main as runTradingServer
from vnpy.trader.vtEngine import LogEngine
START_TIME = time(20, 45)
CLOSE_TIME = time(15, 30)
if __name__ == '__main__':
# 创建日志引擎
le = LogEngine()
le.setLogLevel(le.LEVEL_INFO)
le.addConsoleHandler()
# 进入循环
pWeb = None
pTrading = None
while True:
le.info('-'*30)
dt = datetime.now()
le.info(u'当前时间:%s' %dt)
currentTime = dt.time()
if currentTime >= START_TIME and currentTime <= CLOSE_TIME:
le.info(u'当前处于交易时间段')
if not pTrading:
pTrading = Process(target=runTradingServer)
pTrading.start()
le.info(u'启动交易服务器进程')
if not pWeb:
pWeb = Process(target=runWebServer)
pWeb.start()
le.info(u'启动WEB服务器进程')
else:
le.info(u'当前处于非交易时间段')
if pTrading:
pTrading.terminate()
pTrading.join()
pTrading = None
le.info(u'关闭交易服务器进程')
if pWeb:
pWeb.terminate()
pWeb.join()
pWeb = None
le.info(u'关闭WEB服务器进程')
sleep(60)