← 返回题库
中级

实现死信队列处理

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    dead_letter_queue_csv = open_url(____).read()
    messages_csv = open_url(____).read()
    import pandas as pd, json
    from io import StringIO
    dlq = pd.read_csv(StringIO(____))
    msgs = pd.read_csv(StringIO(____))
    MAX_RETRY = ____
    class DeadLetterQueue:
        def __init__(____):
            self.queue = []
            self.max_retry = max_retry
        def add(____):
            self.queue.append(____)
        def retry_all(____):
            survived = []
            for item in self.queue:
                try:
                    handler(item['____'], json.loads(____))
                    print(____)
                except Exception as e:
                    item['____'] += ____
                    if item['____'] < self.max_retry:
                        survived.append(____)
                        print(____)
                    else:
                        print(____)
            self.queue = survived
    def flaky_handler(____):
        if topic == '____': raise RuntimeError(____)
    dlq_obj = DeadLetterQueue()
    for _, row in dlq.iterrows():
        dlq_obj.add(____)
    print(____)
    print(____)
    dlq_obj.retry_all(____)
    print(____)

示例

输入
solve()
期望输出
DLQ初始: 8条
重试DLQ:
  msg-7ea4ee9c: retry SUCCESS
  msg-57f0002f: retry FAIL (1/3)
  msg-8c3bb092: retry SUCCESS
  msg-214b8680: retry SUCCESS
  msg-72b17880: retry SUCCESS
  msg-8abbaaa9: retry SUCCESS
  msg-9b0fea55: retry SUCCESS
  msg-d052f52c: retry SUCCESS
DLQ剩余: 1条
Python 代码 🔒 登录后使用
🔒

登录后即可练习

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