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
Ответить

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

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

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

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

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