From 0ae7126e963419d89b9ccf31f638aebe9c75a413 Mon Sep 17 00:00:00 2001 From: bt3gl <138340846+bt3gl-google@users.noreply.github.com> Date: Sun, 30 Jul 2023 16:48:52 -0700 Subject: [PATCH] Create logger_rate_limiter.py --- stacks_and_queues/logger_rate_limiter.py | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 stacks_and_queues/logger_rate_limiter.py diff --git a/stacks_and_queues/logger_rate_limiter.py b/stacks_and_queues/logger_rate_limiter.py new file mode 100644 index 0000000..4b35009 --- /dev/null +++ b/stacks_and_queues/logger_rate_limiter.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# author: bt3gl + +class Logger: + + def __init__(self): + + self.msg_set = set() + self.msg_queue = deque() + + def print_message(self, timestamp: int, message: str) -> bool: + + while self.msg_queue: + msg, msg_timestamp = self.msg_queue[0] + if timestamp - msg_timestamp >= 10: + self.msg_queue.popleft() + self.msg_set.remove(msg) + else: + break + + if message not in self.msg_set: + self.msg_set.add(message) + self.msg_queue.append((message, timestamp)) + return True + else: + return False +