Я делал приложение, в котором мне нужно было реализовать сокет.Поэтому я решил добавить сообщения сокетов из разных функций и добавить все сообщения в одну очередь, бесконечно читать их и отправлять оттуда сообщения.
Но моя проблема заключается в том, что когда я добавляю сообщение в очередь, то же самое не принимается вReader.
Пожалуйста, любая помощь или лучшая идея для обработки сообщений в приветствии.
Мой код выглядит так: -
from queue import Queue
from bot.core.utils import singleton
@singleton
class SocketFeedService:
feed_queue = Queue()
def add_message(self, username, message):
message_dict = dict(user=username, message=message)
print("Adding message", message_dict)
SocketFeedService().feed_queue.put(message_dict)
def reader(self):
while True:
message = SocketFeedService().feed_queue.get(block=False)
print("feed message", message)
SocketFeedService().feed_queue.task_done()
Синглтон реализован следующим образом: -
def singleton(class_):
instances = {}
def get_instance(*args, **kwargs):
if class_ not in instances:
instances[class_] = class_(*args, **kwargs)
return instances[class_]
return get_instance
И добавив сообщение вроде этого: -
SocketFeedService().add_message(self.bot.user_instance.username,
log_string)
Я также пытался читать в другой теме, но это не сработало
Спасибо за любую помощь.:)