首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kucoin websocket延迟

Kucoin websocket延迟
EN

Stack Overflow用户
提问于 2022-01-20 19:34:46
回答 1查看 1.2K关注 0票数 0

我使用python和websocket从kucoin的api收集滴答数据。端点标识代码: all,所以它的意思是,我接收所有符号的所有滴答。

代码语言:javascript
复制
async def websocketConnect():
    async def event(msg):
        print(time.time())
        print(msg["data"]["time"])

        

# Subscribe to ALL tickers
topic = "/market/ticker:all"
publicClient = WsToken(url="https://api.kucoin.com")
wsClientTick = await KucoinWsClient.create(None, publicClient, event, private=False)
await wsClientTick.subscribe(topic)

while True:
    await asyncio.sleep(1)


if __name__ == "__main__":
    loop = asyncio.new_event_loop()
    loop.run_until_complete(websocketConnect())

当我比较当前的时间戳和滴答时间时,我可以从100毫秒到30秒之间的波动很大。

我能做些什么让它更稳定吗?是因为我收到了大量的数据吗?

编辑:

因此,我根据异步文档添加了一个“任务”,分别计算来自套接字的每个消息。现在,当前毫秒和滴答时间之间的增量是上下移动的,但不会从100毫秒增加到30毫秒,这更好,但我想让它更稳定。

代码语言:javascript
复制
async def compute(msg):
    print(int(time.time() * 1000) - int(msg["data"]["time"]), flush=True)

async def websocketConnect():
    async def event(msg):
        task = asyncio.create_task(compute(msg))
        await task



# Subscribe to ALL tickers
topic = "/market/ticker:all"
publicClient = WsToken(url="https://api.kucoin.com")
wsClientTick = await KucoinWsClient.create(None, publicClient, 
event, private=False)
await wsClientTick.subscribe(topic)

while True:
    await asyncio.sleep(1)


if __name__ == "__main__":
    loop = asyncio.new_event_loop()
    loop.run_until_complete(websocketConnect())

编辑2 :

所以事实上,我可以延迟100 is以下的大部分时间,但是当我开始对熊猫做一些操作的时候--例如,我处理进来的蜱类的延迟会逐渐增加。

有人能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2022-11-11 16:30:18

您使用的是异步,所以所有东西仍然运行在同一个线程上。尝试线程或多处理模块来创建和更新主代码可以读取的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70792399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档