要在Python中保留最后几分钟取消队列

rqenqsqc  于 2022-12-01  发布在  Python
关注(0)|答案(1)|浏览(109)

我想用Python中的双端队列系统把一个时间序列的最后10分钟保存在内存中。现在我用的是双端队列,但我可能在几秒钟内收到100个数据点,然后几秒钟内什么都没有。你有什么想法吗?
我在一篇帖子中读到了一些关于FastRBTree的东西,但它可以追溯到2014年。现在有没有更好的解决方案?
我最感兴趣的是计算固定时间段内的标准差,因此在该固定时间段内收到的数据越少,标准差就越小

xdyibdwo

xdyibdwo1#

如果你关心容器的大小,“最简单”的方法可能是使用deque,并设置一个maxlen参数,然后当它溢出时,最早的add就丢失了,但这显然不能保证10分钟的价值,但它是一个有效的数据结构。
如果你想“按deque中的时间修剪”,那么你可能需要创建一个自定义类,它可以保存数据和某种类型的时间戳,然后定期轮询deque的结尾,以获得最早项目的时间,并保持弹出,直到你不晚于当前时间+10分钟。
如果事情发生得更加动态,您可以使用某种数据库结构来完成此操作(这不是我的专业领域,但似乎是可行的路径),并可能以数据库或sqlite问题的形式重新询问类似的问题(包含更多细节)。

相关问题