这样行吗?我就是这样理解你的问题的。它的作用是创建一个类来跟踪事物。你要么通过tw.插入()或和tw.sum_窗口(秒)。在
初始化TimeWindow时,可以给它一个max size参数,默认值是10秒。当您添加元素或计算和时,它会进行一次清理,以便在每次插入或求和操作之前,第一个元素时间e[0][0]和最后一个元素时间e[n][0]之间的距离在10秒之内。删除旧条目。有一个“poller”线程来跟踪您的请求。在
我添加了两个队列,因为我不知道您打算如何处理结果。现在,如果您想请求从现在开始到未来5秒的数据,您可以创建一个请求并将其放入队列中。请求有一个随机的id,因此您可以将其与结果匹配。主线程需要监视结果队列,5秒钟后,发送到队列的每个请求都返回相同的id和总和。在
如果这不是你想做的,那我就是不明白你想在这里实现什么。即使这已经相当复杂,可能有一个更简单的方法来实现你想要做的。在import random
import time
import threading
import datetime
import Queue
import uuid
from collections import deque
q_lock = threading.RLock()
class TimeWindow(object):
def __init__(self, max_size=10):
self.max_size = max_size
self.q = deque()
def expire(self):
time_now = datetime.datetime.now()