Functions

kafkastreamer.send(objects: Sequence[Model], manager: Manager | None = None, objects_ids: Sequence[int | str] | None = None, msg_type: str | None = None, timestamp: datetime | None = None, batch_size: int | None = None, batch_kwargs: dict[str, Any] | None = None, producer: KafkaProducer | None = None, flush: bool = True) int[source]

Sends objects to the associated streamer.

kafkastreamer.send_create(objects: Sequence[Model], **kwargs: Any) int[source]

Alias for send(objects, msg_type=TYPE_DELETE, ...).

kafkastreamer.send_update(objects: Sequence[Model], **kwargs: Any) int[source]

Alias for send(objects, msg_type=TYPE_UPDATE, ...).

kafkastreamer.send_delete(objects: Sequence[Model], **kwargs: Any) int[source]

Alias for send(objects, msg_type=TYPE_DELETE, ...).

kafkastreamer.send_refresh(objects: Sequence[Model], **kwargs: Any) int[source]

Alias for send(objects, msg_type=TYPE_REFRESH, ...).

kafkastreamer.full_refresh(model_or_manager: type[Model] | Manager | None = None, producer: KafkaProducer | None = None, flush: bool = True) int[source]

Does full refresh for model or manager. Sends refresh message for each object, then sends enumerate message with objects IDs or EOS (end of stream).

kafkastreamer.set_context(user: Any | None = None, source: str | None = None) Generator[None, None][source]

Context manager to set message streamer context variables.

kafkastreamer.stop_handlers(*models: type[Model]) Generator[None, None][source]

Context manager to stop handlers for particular or all models.

kafkastreamer.is_model_handler_stopped(model: type[Model]) bool[source]

Returns True if model handler is stoped.

kafkastreamer.get_registry() list[tuple[type[Model], Streamer]][source]

Returns (model, streamer) tuples for all registered streamers and models.

kafkastreamer.get_streamer(model: type[Model]) Streamer | None[source]

Returns streamer instance for given Django model or None.

Returns a generator of (field, streamer) tuples for all related fields in specified model.

kafkastreamer.squash() Generator[None, None][source]

Context manager to squash messages. Within this context manager messages are not sent immediately but accumulate in the buffer. Items in buffer is grouped by object ID, so that later items override earliest to avoid unnecessary messages that represent an intermediate state.