import datetime import threading import time import pika user = pika.PlainCredentials("id", "pwd") parameters = pika.ConnectionParameters("172.20.80.100", credentials=user) connection = pika.BlockingConnection(parameters) index = 0 data_server = {} def func(): while True: now = int(datetime.datetime.now().timestamp()) for k, v in data_server.items(): if (now - v)>3: del data_server[k] time.sleep(1) if __name__ == '__main__': threading.Timer(1, func).start() channel = connection.channel() for method_frame, properties, body in channel.consume("mch"): try: ip, port = str(body).split(':') data_server[ip] = int(datetime.datetime.now().timestamp()) print(data_server) except Exception as e: print(e) connection.close() connection.close()