使用用户输入关闭StreamConn

2024-09-26 22:54:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在玩弄羊驼市场的API https://github.com/alpacahq/alpaca-trade-api-python 我正在尝试流数据,但也让用户关闭与输入的连接,但我不完全确定如何进行。我已经包括了一个尝试退出与键盘中断似乎不工作。正在找人给我指出正确的方向

编辑:我已经尝试过使用线程来实现这一点,但是我不确定这是否是正确的方法,因为endstream()似乎没有运行

代码是什么样子的

import alpaca_trade_api as tradeapi
import threading

conn = tradeapi.StreamConn(xxx,xxx,xxx)

def streamorders(conn):
    t1 = threading.Thread(target = startstream(conn))
    t2 = threading.Thread(target = endstream(conn))
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    return

def startstream(conn):
    @conn.on(r'trade_updates')
    async def on_msg(conn, data, symbols):
        print('Order completed')
    conn.run(['trade_updates'])

def endstream(conn):
    time.sleep(0.2)
    userAction = int(input('Press 0 to stop streaming: '))
    if userAction == 0:
        conn.close()
        return

streamorders(conn)

理想情况下,我希望它表现得像这样

order completed
order completed
order completed

Press 0 to exit: 

Tags: importapideforderconnxxxt1threading

热门问题