TAMQueue
class TAMQueue(DynamicMessageQueue):
def __init__(self) -> None:
self.queue1 = []
self.queue2 = []
// 记录上次重排序的时间
self.last_time = datetime.now().timestamp()
self.lock = threading.Lock()最后更新于
class TAMQueue(DynamicMessageQueue):
def __init__(self) -> None:
self.queue1 = []
self.queue2 = []
// 记录上次重排序的时间
self.last_time = datetime.now().timestamp()
self.lock = threading.Lock()最后更新于
def push(self, message: Message):
with self.lock:
# 介绍到管理员消息时,将其放在第一队的队首
if message.kind == MessageKind.Admin:
self.queue1.insert(0, message)
else:
message.timestamp = datetime.now().timestamp()
message.sim = self._searcher.similarity(message.content)
self.queue2.append(message)
# 60s重排序一次
current_time = datetime.now().timestamp()
if (current_time - self.last_time > 60):
self.queue2.sort(key=lambda x: self.calculate_total_priority(x.timestamp, current_time, x.sim))
self.last_time = current_time