You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询计算队列每分钟平均进出人数的方法

咨询计算队列每分钟平均进出人数的方法

嘿,我来帮你理清楚怎么计算这两个数据~首先得明确:你现在的queue只存了当前还在队列里的人的进入时间,已经离开的人数据被pop(0)删掉了,所以要准确计算平均进出人数,得先补全完整的进出日志记录,下面分两部分讲具体方法:

一、每分钟平均进入人数的计算

第一步:先保存所有进入记录

你需要额外维护一个entry_log列表,每次有人加入队列时,除了把时间戳加到queue里,同时也存到entry_log中:

import time
queue = []
entry_log = []

# 新用户加入时
queue.append(time.time())
entry_log.append(time.time())

这样entry_log就会保留所有用户的进入时间戳,不会因为用户离开而丢失数据。

第二步:根据需求计算平均

有两种常见的计算场景:

  • 总时间段平均:比如从第一个用户进入到现在的平均每分钟进入人数

    1. 先算总时长:用最后一条进入记录的时间戳减去第一条的时间戳,再除以60转换成分钟数
    2. 总进入人数就是len(entry_log)
    3. 公式:平均每分钟进入人数 = 总进入人数 / 总时长(分钟)
      拿你给的5个时间戳举例:时长是1735671314.3440118 - 1735671309.570244 ≈4.77秒,也就是约0.0795分钟,总人数5,那这段时间的平均就是5 / 0.0795 ≈62.9人/分钟
  • 滚动实时平均:比如看最近1分钟内的进入人数(或者多个连续1分钟时间段的平均)
    遍历entry_log,统计当前时间往前推60秒内的记录数量,这个数量就是最近1分钟的进入人数;如果要算多个时间段的平均,就把多个1分钟的数值取平均即可。

二、每分钟平均离开人数的计算

第一步:保存所有离开记录

同样,你需要维护一个exit_log列表,每次有人离开队列(执行pop(0))时,把当前的时间戳存进去:

exit_log = []

# 用户离开时
if queue:
    queue.pop(0)
    exit_log.append(time.time())

第二步:计算平均

逻辑和进入人数一致:

  • 总时间段平均:总离开人数len(exit_log)除以总离开时长(从第一条离开记录到最后一条的时间,转换成分钟),得到平均每分钟离开人数。如果想统计从服务启动到现在的整体情况,也可以用第一个进入时间到最后一个离开时间的时长来计算。
  • 滚动实时平均:统计当前时间往前60秒内的离开记录数量,或者多个1分钟时间段的数值平均。

关键提醒

如果只依赖当前的queue列表,是没法算出完整的进出数据的——因为离开的用户数据已经被移除了,所以必须单独保存entry_log和exit_log这两个日志列表,这是计算的基础哦~

备注:内容来源于stack exchange,提问作者Kelvin Hollander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 12:04:34