NATS Publishing¶
Для отправки сообщений NatsBroker
использует унифицированный метод publish
.
import asyncio
from propan import NatsBroker
async def pub():
async with NatsBroker() as broker:
await broker.publish("Hi!", subject="test")
asyncio.run(pub())
Базовые аргументы¶
Метод publish
принимает следующие аргументы:
message
: bytes | str | dict | Sequence[Any] | pydantic.BaseModel - сообщение для отправкиsubject
: str - subject, куда будет отправлено сообщение.
Параметры сообщения¶
headers
: dict[str, Any] | None = None - заголовки отправляемого сообщения (используются потребителями)
RPC аргументы¶
Также publish
поддерживает общие аргументы для создания RPC запросов:
reply_to
: str = "" - в какой channel отправить ответ (используется для асинхронных RPC запросов)callback
: bool = False - ожидать ли ответ на сообщениеcallback_timeout
: float | None = 30.0 - таймаут ожидания ответа. В случаеNone
- ждет бесконечноraise_timeout
: bool = FalseFalse
- возвращать None в случае таймаутаTrue
- ошибкаTimeoutError
в случае таймаута