/
kotkov
/
eco
Обзор
Документация
Войти
/
kotkov
/
eco
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
AAA/aaa.py
60 строк
2 KB
Arseny Kotkov
Add multithreading logging to file with log.ecolog
04 мар 2025, 08:01
04 мар 2025, 08:01
03de008
Код
Авторство
О чём код?
import json import AAA.config as config from base.base import BaseAgent from base.rpc import rpc_method from log import ecolog class AAA(BaseAgent): """ Центр регистрации агентов. """ def getConfig(self): return config.NAME,config.IP,config.PORT def __init__(self): super().__init__() self.config=config self._registered_agents: list = [] @rpc_method("") def register(self, name: str, ip: str, port: int, methods: list) -> str: # Временное решение! Сохраняем информацию об агенте в словарь self._registered_agents.append({ 'name': name, 'ip': ip, 'port': port, 'methods': methods }) # TODO: высылать уведомление всем зарегистрированным агентам, чтобы они # обновили свои списки известных им агентов. # ... msg = f"Registered agent [{name}] providing methods {methods} at {ip}:{port}." ecolog(msg) return msg @rpc_method("") def get_registered_agents(self): return json.dumps(self._registered_agents) def get_interface(self, ip, port): for agent in self._registered_agents: if agent['ip'] == ip and agent['port'] == port: return agent['methods'] # In case agent interface is not found in registered interfaces raise LookupError def main(): # Запускаем центр регистрации. try: aaa = AAA() ecolog("AAA is ready and awaits for connections.") aaa.serve((IP, PORT), blocking=True) except KeyboardInterrupt: exit(0) if __name__ == '__main__': AAA.main()