Почему Redis сообщает об отсутствии подписчиков на канал после того, как я подписался на этот канал без ошибок?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему Redis сообщает об отсутствии подписчиков на канал после того, как я подписался на этот канал без ошибок?

Сообщение Anonymous »

Я пытаюсь отправить обратную связь в реальном времени через веб-сокеты, и я делаю это, отправляя данные через Redis с сервера rest-api на сервер веб-сокера (оба написаны на Python/Django). На сервере веб-сокетов я подписываюсь на канал с именем «события» следующим образом:

Код: Выделить всё

redis_connection = redis.Redis(
host=settings.REDIS_HOST,
port=settings.REDIS_PORT,
db=settings.REDIS_CACHE_DB,
)
pubsub = redis_connection.pubsub()
pubsub.subscribe(events=process_event)
На сервере rest-api я публикую данные в тот же канал Redis следующим образом:

Код: Выделить всё

connection.publish("events", json.dumps({"user_email": user.email, "message": message}))
Пытаясь выяснить, почему ни одно событие не дошло до обработчика «process_event», я обнаружил, что метод публикации возвращает количество подписчиков канала, поэтому я обновил эту строку до это:

Код: Выделить всё

count = connection.publish("events", json.dumps({"user_email": user.email, "message": message}))
print(f"Published to events channel with {count} subscribers")
Результат всегда равен 0, даже после указанной выше подписки. Когда я напрямую попытался запросить количество подписчиков, я зашёл в Docker-контейнер redis-stack и увидел следующее:

redis-cli
127.0.0.1:6379> События PUBSUB NUMSUB
  • "события"
    (целое число) 0< /li>

127.0.0.1:6379>

Вывод самого redis-stack, похоже, не распознает ни подписку, ни публикацию.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -that-chan
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»