redis
Redis pub/sub worker bus for distributed workers.
- class pipecat.bus.network.redis.RedisBus(*, redis: Redis, serializer: MessageSerializer | None = None, channel: str = 'pipecat:bus', **kwargs)[source]
Bases:
WorkerBusDistributed worker bus backed by Redis pub/sub.
Publishes serialized messages to a Redis channel for cross-process communication.
BusLocalMessagemessages bypass Redis and are delivered directly to local subscribers.Requires the
redis[hiredis]package (redis.asyncio).Example:
from redis.asyncio import Redis redis = Redis.from_url("redis://localhost:6379") bus = RedisBus(redis=redis, channel="my-session")
- __init__(*, redis: Redis, serializer: MessageSerializer | None = None, channel: str = 'pipecat:bus', **kwargs)[source]
Initialize the RedisBus.
- Parameters:
redis – A
redis.asyncio.Redisclient instance.serializer – The MessageSerializer for encoding/decoding messages. Defaults to JSONMessageSerializer.
channel – The Redis pub/sub channel name. Defaults to
"pipecat:bus".**kwargs – Additional arguments passed to WorkerBus.
- async publish(message: BusMessage) None[source]
Publish a message to the Redis channel.
- Parameters:
message – The bus message to publish.