Redis в Python асинхронен?Python

Программы на Python
Anonymous
Redis в Python асинхронен?

Сообщение Anonymous »

У меня есть следующий код Python:

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

import redis

from app.infra.services.notifications import INotifier
from app.schemas.notification import NotificationMessage
from app.config import settings

REDIS_CLIENT_PUBSUB = redis.StrictRedis(
host=settings.REDIS_HOST,
port=settings.REDIS_PORT,
password=settings.REDIS_PASSWORD,
)

class RedisNotifier(INotifier):
def __init__(self):
self.redis_client = REDIS_CLIENT_PUBSUB

async def send_notification(self, room: str, notification: NotificationMessage) -> None:
await self.redis_client.publish(room, notification.json())

redis_notifier = RedisNotifier()
У меня есть веб-приложение, написанное на FastAPI, которое будет использовать redis_notifier для публикации сообщений в каналах. Мой вопрос в том, действительно ли это:
self.redis_client.publish(room, Notification.json())
Это асинхронно, то есть мое веб-приложение сможет отказаться от этой сопрограммы и делать другие вещи пока публикация завершена?
Меня немного смущает библиотека redis и aioredis, я не знаю, имеет ли мой код смысл или я делаю что-то не так

Подробнее здесь: https://stackoverflow.com/questions/786 ... ynchronous

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