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

Call

Подготовленный вызов функции другого модуля. Не повторяет отправку после неизвестного результата запуска.

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

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

call = app.modules("dependency-id").function("status")

call подготовлен через target.function(); перед poll() уже выполнен start(). Функция и её поля объявлены зависимостью.

__init__

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

def __init__(target: Module, function: str, values: dict[str, JSON] | None = None, args: JSON = None) -> None: ...

Аргументы

Результат

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

Права

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

Ошибки

Пример

# Обычный способ получения объекта:
call = app.modules("dependency-id").function("status")

arguments

Дополняет аргументы до первой попытки запуска.

def arguments(**values: JSON) -> Self: ...

Аргументы

Результат

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

Права

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

Ошибки

Пример

call.arguments()

start

Запускает функцию один раз и сохраняет ID запроса. После успеха повторный start() возвращает тот же объект.

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

Аргументы

Нет.

Результат

Self. Тот же объект после успешной операции. Запускает функцию один раз и сохраняет ID запроса. После успеха повторный start() возвращает тот же объект.

Права

Нужны modules.call.

Ошибки

Пример

result = await call.start()

poll

Получает текущее состояние уже запущенного вызова, не ожидая завершения.

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

Аргументы

Нет.

Результат

dict[str, JSON]. Получает текущее состояние уже запущенного вызова, не ожидая завершения.

Права

Нужны modules.call.

Ошибки

Пример

result = await call.poll()

wait

При необходимости запускает вызов и ожидает сигнал завершения от ядра до timeout. Готовый результат возвращается сразу, без обязательной паузы poll. failed и cancelled вызывают RuntimeError; TimeoutError не отменяет функцию у получателя. Права и состояние зависимости проверяются повторно перед выдачей результата.

async def wait(timeout: float = 30, poll: float = 0.1) -> JSON: ...

Аргументы

Результат

JSON. Результат функции зависимости после проверки прав и состояния.

Права

Нужны modules.call.

Ошибки

Пример

result = await call.wait()