← 返回题库
中级

实现消息幂等消费去重

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    messages_csv = open_url(____).read()
    import pandas as pd, json
    from io import StringIO
    msgs = pd.read_csv(StringIO(____))
    processed_ids = set()
    consumed = duplicate = error = ____
    def idempotent_consume(____):
        nonlocal consumed, duplicate, error
        if msg_id in processed_ids:
            duplicate += ____
            return False, '____'
        try:
            payload = json.loads(____) if isinstance(____) else {}
            processed_ids.add(____)
            consumed += ____
            return True, '____'
        except Exception as e:
            error += ____
            return False, f'____'
    all_msgs = list(msgs.iterrows())
    doubled = [(____) for _,r in msgs.head(____).iterrows()] * ____ +               [(____) for _,r in msgs.iloc[____:].iterrows()]
    for mid, topic, payload in doubled:
        idempotent_consume(____)
    print(____)
    print(____)

示例

输入
solve()
期望输出
consumed=30, duplicate=5, error=0
unique processed: 30
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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