Ejemplo n.º 1
0
def main():
    # 创建日志模块
    logger = Logger()
    log_process = Process(target=run_log_process, args=(logger,))
    log_process.start()

    logger.info("Start epolestar equant version:%s!" % ("EquantV1.0.8.20190903"))

    # 创建策略引擎到界面的队列,发送资金数据
    eg2ui_q = Queue(10000)
    # 创建界面到策略引擎的队列,发送策略全路径
    ui2eg_q = Queue(10000)

    # 创建策略引擎
    engine = StrategyEngine(logger, eg2ui_q, ui2eg_q)
    engine_process = Process(target=run_engine_process, args=(engine,))
    engine_process.start()

    control = Controller(logger, ui2eg_q, eg2ui_q)
    control.run()
    time.sleep(3)
    import atexit
    def exitHandler():
        control.receiveEgThread.stop()
        # 1. 先关闭策略进程, 现在策略进程会成为僵尸进程
        # todo 此处需要重载engine的terminate函数
        # 2. 关闭engine进程
        engine_process.terminate()
        engine_process.join()
        log_process.terminate()
        log_process.join()
    atexit.register(exitHandler)
Ejemplo n.º 2
0
def main():
    #创建日志模块
    logger = Logger()
    log_process = Process(target=run_log_process, args=(logger, ))
    log_process.start()

    logger.info("Start epolestar equant9.5.4!")

    # 创建策略引擎到界面的队列,发送资金数据
    eg2ui_q = Queue(10000)
    # 创建界面到策略引擎的队列,发送策略全路径
    ui2eg_q = Queue(100)

    #创建策略引擎
    engine = StrategyEngine(logger, eg2ui_q, ui2eg_q)
    engine_process = Process(target=run_engine_process, args=(engine, ))
    engine_process.start()

    #创建主界面
    app = TkinterController(logger, ui2eg_q, eg2ui_q)
    #等待界面事件
    app.run()

    import atexit

    def exitHandler():
        # 1. 先关闭策略进程, 现在策略进程会成为僵尸进程
        # todo 此处需要重载engine的terminate函数
        # 2. 关闭engine进程
        engine_process.terminate()
        engine_process.join()
        log_process.terminate()
        log_process.join()

    atexit.register(exitHandler)
Ejemplo n.º 3
0
def main():
    # 创建日志模块
    logger = Logger()
    log_process = Process(target=run_log_process,
                          args=(logger, ),
                          name="LoggerProcess")
    log_process.start()

    # import psutil
    # 获取所有进程的信息
    # tmplist = [ (proc.pid,proc.name(),psutil.Process(proc.pid).cmdline()) for proc in psutil.process_iter() ]
    import psutil
    mainProcess = psutil.Process(pid=os.getpid())
    tmplist = mainProcess.children()
    processlist = [mainProcess, *tmplist]
    tmplist1 = [p.cmdline() for p in processlist]
    logger.info("mainProcess pid " + str(os.getpid()))
    for i in tmplist:
        if i._name == "python.exe":
            logger.info("LoggerProcess pid " + str(i.pid))

    saveMainPid(os.getpid())

    # 检查软件更新
    checkUpdate(logger)

    # 创建策略引擎到界面的队列,发送资金数据
    eg2ui_q = Queue(10000)
    # 创建界面到策略引擎的队列,发送策略全路径
    ui2eg_q = Queue(10000)

    # 创建策略引擎
    engine = StrategyEngine(logger, eg2ui_q, ui2eg_q)
    engine_process = Process(target=run_engine_process, args=(engine, ))
    engine_process.start()

    # logger.info("StrategyEngineProcess pid "+str(engine_process.pid))

    control = Controller(logger, ui2eg_q, eg2ui_q)
    control.run()
    time.sleep(3)
    import atexit

    def exitHandler():
        control.receiveEgThread.stop()
        # 1. 先关闭策略进程, 现在策略进程会成为僵尸进程
        # todo 此处需要重载engine的terminate函数
        # 2. 关闭engine进程
        engine_process.terminate()
        engine_process.join()
        log_process.terminate()
        log_process.join()

    atexit.register(exitHandler)
Ejemplo n.º 4
0
def main():

    # 创建日志模块
    logger = Logger()
    log_process = Process(target=run_log_process, args=(logger,))
    log_process.start()
    
    saveMainPid(os.getpid())

    # 检查软件更新
    checkUpdate(logger)

    # 创建策略引擎到界面的队列,发送资金数据
    eg2ui_q = Queue(10000)
    # 创建界面到策略引擎的队列,发送策略全路径
    ui2eg_q = Queue(10000)
    
    # 创建策略引擎
    engine = StrategyEngine(logger, eg2ui_q, ui2eg_q)
    engine_process = Process(target=run_engine_process, args=(engine,))
    engine_process.start()

    # 创建主界面
    app = TkinterController(logger, ui2eg_q, eg2ui_q)
    # 等待界面事件
    app.run()

    saveMainPid()

    time.sleep(3)
    import atexit
    def exitHandler():
        # 1. 先关闭策略进程, 现在策略进程会成为僵尸进程
        # todo 此处需要重载engine的terminate函数
        # 2. 关闭engine进程
        engine_process.terminate()
        engine_process.join()
        log_process.terminate()
        log_process.join()
    atexit.register(exitHandler)