有没有什么好主意来衡量用户在队列中等待的时间? (Python)

Is there any good idea to measure a time of user waited in queue? (Python)

我正在使用 Python 制作配对系统,我需要测量用户在队列中等待的时间。

有没有更好的优化计数时间的方法?

我使用 Thread 编写了这样的代码。这是我的代码的一部分。

from threading import Thread
from time import sleep

class Matchmaking:
    def __init__(self):
        self._queue = Queue()
        self.timer = Thread(target=self._update_pending_time)
        self.timer.start()
        self.timer.join

    def _update_pending_time(self):
        sleep(1)
        # get_user_in_queue() returns DataFrame
        if not self._queue.get_user_in_queue().empty:
            self.waited_times = self._queue.get_user_in_queue().loc[:, "pending_time"] + 1

正如@deceze 评论的那样,只需保存用户进入队列时的时间戳。

请注意,如果您在用户到达后立即将其推送到队列中,他们将按队列中的时间排序。在这种情况下,您可以使用 FIFO 队列来提取总是 de 早到的用户。

但是,如果您想构建一个具有某种智能的配对系统,并考虑到队列时间以外的其他因素(用户级别、地理区域...),请考虑到您不应该使用队列但更复杂的东西。