← 返回题库
中级

实现下行控制指令发送限流

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    import pandas as pd
    logs_csv = open_url(____).read()
    logs = pd.read_csv(StringIO(____))
    MAX_CMDS_PER_MIN = ____
    cmd_history = {}
    def can_send_cmd(____):
        history = cmd_history.get(____)
        window_start = now - ____
        history = [t for t in history if t > window_start]
        if len(____) >= MAX_CMDS_PER_MIN:
            cmd_history[device_id] = history
            return False, len(____)
        history.append(____)
        cmd_history[device_id] = history
        return True, len(____)
    test_cmds = [(____),(____),(____),
                 (____),(____),(____),
                 (____),(____)]
    for did, ts in test_cmds:
        ok, count = can_send_cmd(____)
        print(did + "____" + str(____) + "____" + ("____" + str(____) + "____" if ok else "____" + str(____) + "____"))

示例

输入
solve()
期望输出
RPI-001 ts=1748736000.0: SEND(count=1)
RPI-001 ts=1748736010.0: SEND(count=2)
RPI-001 ts=1748736020.0: SEND(count=3)
RPI-001 ts=1748736030.0: SEND(count=4)
RPI-001 ts=1748736040.0: SEND(count=5)
RPI-001 ts=1748736050.0: RATE_LIMITED(count=5)
ESP-001 ts=1748736000.0: SEND(count=1)
ESP-001 ts=1748736001.0: SEND(count=2)
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码