Skip to content

Update

Update persistent subscription.

update_persistent_subscription(stub, group_name, stream=None, resolve_link_to_s=None, from_revision=None, commit_position=None, prepare_position=None, extra_statistics=None, message_timeout_ms=None, checkpoint_after_ms=None, max_retry_count=None, min_checkpoint_count=None, max_checkpoint_count=None, max_subscriber_count=None, live_buffer_size=None, history_buffer_size=None, read_batch_size=None, named_consumer_strategy=None, **kwargs)

Updates a persistent subscription.

Source code in src/eventstore_grpc/persistent/update.py
def update_persistent_subscription(
    stub: persistent_pb2_grpc.PersistentSubscriptionsStub,
    group_name: str | None,
    stream: str | None = None,
    resolve_link_to_s: Optional[bool] = None,
    from_revision: Optional[Union[int, str]] = None,
    commit_position: Optional[int] = None,
    prepare_position: Optional[int] = None,
    extra_statistics: Optional[bool] = None,
    message_timeout_ms: Optional[int] = None,
    checkpoint_after_ms: Optional[int] = None,
    max_retry_count: Optional[int] = None,
    min_checkpoint_count: Optional[int] = None,
    max_checkpoint_count: Optional[int] = None,
    max_subscriber_count: Optional[int] = None,
    live_buffer_size: Optional[int] = None,
    history_buffer_size: Optional[int] = None,
    read_batch_size: Optional[int] = None,
    named_consumer_strategy: Optional[str] = None,
    **kwargs,
) -> persistent_pb2.UpdateResp:
    """Updates a persistent subscription."""

    if history_buffer_size is None:
        # TODO: talk with EventStoreDB about this behavior?
        log.warning(
            f"If you don't send `history_buffer_size` EventStoreDB will hang indefinitely: forcing it to its default value -> 500"
        )
        history_buffer_size = 500
    settings = _build_settings(
        resolve_link_to_s=resolve_link_to_s,
        extra_statistics=extra_statistics,
        message_timeout_ms=message_timeout_ms,
        checkpoint_after_ms=checkpoint_after_ms,
        max_retry_count=max_retry_count,
        min_checkpoint_count=min_checkpoint_count,
        max_checkpoint_count=max_checkpoint_count,
        max_subscriber_count=max_subscriber_count,
        live_buffer_size=live_buffer_size,
        history_buffer_size=history_buffer_size,
        read_batch_size=read_batch_size,
        named_consumer_strategy=named_consumer_strategy,
    )
    options = persistent_pb2.UpdateReq.Options(settings=settings, group_name=group_name)
    if stream is None:  # $all
        options.all.CopyFrom(
            _build_options_all(
                commit_position=commit_position,
                prepare_position=prepare_position,
                from_revision=from_revision,
            )
        )
    else:
        options.stream.CopyFrom(
            _build_options_stream(stream=stream, from_revision=from_revision)
        )
    request = persistent_pb2.UpdateReq(options=options)
    response = stub.Update(request, **kwargs)
    return response