68 lines
1.7 KiB
Python
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 or 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)
|
|
|