Cluster · разработчикам

Batch

Атомарная запись нескольких ключей своего раздела. Один ключ разрешено включить только один раз.

Все методы SDK · Типы и ошибки

Получение объекта

batch = app.db.batch()

batch является новым непустым пакетом перед commit(); для добавления операции используй ещё не применённый пакет.

__init__

Создаёт Batch. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

def __init__(db: Scope) -> None: ...

Аргументы

Результат

None. Создаёт Batch. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

# Обычный способ получения объекта:
batch = app.db.batch()

add

Добавляет операцию set или delete в пакет. Применения до commit() нет.

def add(action: str, key: str, value: JSON = missing, ttl: int | None = None, revision: str | None = None) -> Self: ...

Аргументы

Результат

Self. Тот же объект после успешной операции. Добавляет операцию set или delete в пакет. Применения до commit() нет.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

batch.add("set", "count", 1)

set

Добавляет запись значения с необязательными сроком и ожидаемой ревизией.

def set(key: str, value: JSON, ttl: int | None = None, revision: str | None = None) -> Self: ...

Аргументы

Результат

Self. Тот же объект после успешной операции. Добавляет запись значения с необязательными сроком и ожидаемой ревизией.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

batch.set("count", 1)

delete

Добавляет удаление ключа с необязательной ожидаемой ревизией.

def delete(key: str, revision: str | None = None) -> Self: ...

Аргументы

Результат

Self. Тот же объект после успешной операции. Добавляет удаление ключа с необязательной ожидаемой ревизией.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

result = batch.delete("count")

commit

Атомарно применяет непустой пакет. Повторный commit() запрещён. При конфликте ни одна операция не применяется.

async def commit() -> list[dict[str, JSON]]: ...

Аргументы

Нет.

Результат

list[dict[str, JSON]]. Атомарно применяет непустой пакет. Повторный commit() запрещён. При конфликте ни одна операция не применяется.

Права

Нужны db.write. Для другого раздела своего юзербота дополнительно db.full.

Ошибки

Пример

result = await batch.commit()

__aenter__

Вход в async with. Возвращает этот объект без дополнительной загрузки.

async def __aenter__() -> Self: ...

Аргументы

Нет.

Результат

Self. Тот же объект после успешной операции. Вход в async with. Возвращает этот объект без дополнительной загрузки.

Права

Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.

Ошибки

Пример

async with batch as active:
    pass

__aexit__

Выход из async with. При успешном выходе применяет непустой ещё не применённый пакет. Исключения блока не подавляются.

async def __aexit__(kind: type[BaseException] | None, error: BaseException | None, traceback: TracebackType | None) -> None: ...

Аргументы

Результат

None. Выход из async with. При успешном выходе применяет непустой ещё не применённый пакет. Исключения блока не подавляются.

Права

Нужны db.write при применении. Для другого раздела своего юзербота дополнительно db.full.

Ошибки

Пример

async with batch as active:
    pass