Cluster · разработчикам
Task
Состояние и управление созданной задачей. Изменения параметров сверяют ревизию.
Все методы SDK · Типы и ошибки
Получение объекта
task = app.tasks.task("task-id")task ссылается на существующую задачу своего экземпляра; изменение возможно только в допустимом состоянии.
__init__
Создаёт Task. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
def __init__(tasks: Tasks, id: str, data: TaskInfo | None = None) -> None: ...Аргументы
tasks: Tasks, обязательный. Служба задач текущего приложения.id: str, обязательный. Идентификатор объекта, полученный при его создании. Не путь сервера.data: TaskInfo | None, по умолчаниюNone. Ранее полученные данные задачи; None создаёт пустой локальный снимок. Ревизия всё равно загружается перед edit().
Результат
None. Создаёт Task. Обычный способ получения объекта показан выше; прямой конструктор не выполняет сетевые запросы.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
# Обычный способ получения объекта:
task = app.tasks.task("task-id")state
Возвращает состояние из локально загруженных данных; само по себе не опрашивает ядро.
def state() -> str | None: ...Свойство: читается без скобок и без await.
Аргументы
Нет.
Результат
str | None. Возвращает состояние из локально загруженных данных; само по себе не опрашивает ядро.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
- Отдельного исключения SDK нет. Действуют обычные ошибки типов Python и ошибки переданных функций, если они используются.
Пример
value = task.stateactive
Проверяет, что объект не был удалён локально.
def active() -> None: ...Аргументы
Нет.
Результат
None. Проверяет, что объект не был удалён локально.
Права
Не требует прав: операция выполняется локально и сама не обращается к ядру. Права понадобятся при отправке, сохранении или чтении через службу.
Ошибки
ValueError('The task has been deleted'): условие проверяется до продолжения операции.- Conflict при изменении задачи с устаревшей ревизией; InvalidState, если её состояние уже не допускает действие.
Пример
result = task.active()load
Загружает актуальные данные и ревизию задачи.
async def load() -> Self: ...Аргументы
Нет.
Результат
Self. Тот же объект после успешной операции. Загружает актуальные данные и ревизию задачи.
Права
Нужны tasks.create.
Ошибки
- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
- Conflict при изменении задачи с устаревшей ревизией; InvalidState, если её состояние уже не допускает действие.
Пример
result = await task.load()edit
Меняет допустимые параметры задачи с проверкой ревизии; при необходимости предварительно загружает состояние.
async def edit(**values: JSON) -> Self: ...Аргументы
values: JSON, произвольные именованные аргументы. Допустимы at: datetime | float, after: float, interval: int | None, retry: int и values: dict[str, JSON]. at и after одновременно запрещены; время в прошлом отклоняется.
Результат
Self. Тот же объект после успешной операции. Меняет допустимые параметры задачи с проверкой ревизии; при необходимости предварительно загружает состояние.
Права
Нужны tasks.create.
Ошибки
- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
- Conflict при изменении задачи с устаревшей ревизией; InvalidState, если её состояние уже не допускает действие.
Пример
result = await task.edit(retry=0)reschedule
Переносит задачу на абсолютное время с проверкой ревизии.
async def reschedule(at: datetime | float) -> Self: ...Аргументы
at: datetime | float, обязательный. Абсолютное UNIX-время в секундах; datetime должен содержать часовой пояс.
Результат
Self. Тот же объект после успешной операции. Переносит задачу на абсолютное время с проверкой ревизии.
Права
Нужны tasks.create.
Ошибки
- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
- Conflict при изменении задачи с устаревшей ревизией; InvalidState, если её состояние уже не допускает действие.
Пример
await task.reschedule(2000000000.0)after
Переносит задачу на указанное число секунд от текущего времени.
async def after(seconds: float) -> Self: ...Аргументы
seconds: float, обязательный. Конечная неотрицательная задержка в секундах.
Результат
Self. Тот же объект после успешной операции. Переносит задачу на указанное число секунд от текущего времени.
Права
Нужны tasks.create.
Ошибки
- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
- Conflict при изменении задачи с устаревшей ревизией; InvalidState, если её состояние уже не допускает действие.
Пример
result = await task.after(60)cancel
Запрашивает отмену и заменяет локальные данные ответом ядра.
async def cancel() -> Self: ...Аргументы
Нет.
Результат
Self. Тот же объект после успешной операции. Запрашивает отмену и заменяет локальные данные ответом ядра.
Права
Нужны tasks.create.
Ошибки
- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
- Conflict при изменении задачи с устаревшей ревизией; InvalidState, если её состояние уже не допускает действие.
Пример
result = await task.cancel()delete
Удаляет запись задачи и отмечает объект удалённым.
async def delete() -> bool: ...Аргументы
Нет.
Результат
bool. Удаляет запись задачи и отмечает объект удалённым.
Права
Нужны tasks.create.
Ошибки
- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
- Conflict при изменении задачи с устаревшей ревизией; InvalidState, если её состояние уже не допускает действие.
Пример
result = await task.delete()wait
Ожидает состояние done и возвращает result. Ошибка или отмена задачи вызывает RuntimeError; истечение ожидания не отменяет задачу.
async def wait(timeout: float = 30, poll: float = 0.1) -> JSON: ...Аргументы
timeout: float, по умолчанию30. Конечный положительный срок ожидания в секундах. Истечение не отменяет удалённое действие.poll: float, по умолчанию0.1. Конечный положительный промежуток между опросами, в секундах.
Результат
JSON. Ожидает состояние done и возвращает result. Ошибка или отмена задачи вызывает RuntimeError; истечение ожидания не отменяет задачу.
Права
Нужны tasks.create.
Ошибки
RuntimeError(self.data['error'] or self.state): условие проверяется до продолжения операции.- Ошибки ядра: AccessDenied при нехватке прав или выходе за ограничения, InvalidInput для неверных параметров, InvalidState для недоступного состояния, QuotaExceeded при превышении лимита, Unavailable при недоступной службе. Остальные коды представлены SDKError; см. TYPES.md. Ошибка канала связи вызывает RuntimeError. Действие с неизвестным результатом нельзя автоматически считать невыполненным.
- Conflict при изменении задачи с устаревшей ревизией; InvalidState, если её состояние уже не допускает действие.
- TimeoutError при истечении срока ожидания; задача или вызов у получателя может продолжаться. Не отправляй действие повторно без проверки состояния.
Пример
result = await task.wait()