Сервер очередей и асинхронный SDK

network.bus / network.bus.async · 0.3.0 · Rust + RabbitMQ · Python 3.12+

Фоновые задачи, подтверждённая доставка, права клиентов, аренда исполнения и контроль ресурсов. История и бизнес-данные остаются в приложениях.

pip install --index-url https://engine.yeti3.ru/sdk/simple/ --extra-index-url https://pypi.org/simple yeti3-bus==0.3.0

Контракт и руководство ↗ · Аудит SDK и порядок переноса ↗ · Пакет SDK ↗ · Управление очередями ↗

Для Python и конструктора

from yeti3_bus.async_client import AsyncClient

async with AsyncClient("http://yeti3-bus:8080", token) as bus:
    job = await bus.submit(kind, data, request_key=stable_key)
    # Save the ID before polling.
    result = await bus.wait(job["id"])

Контроль ресурсов

Максимум три экземпляра. Исполнение откладывается при нехватке памяти или высокой нагрузке. В текущем выпуске запущен один экземпляр; автоматическое масштабирование требует отдельной проверки ёмкости хоста.

Защита от повторных действий

Просроченная аренда переводит задачу на сверку. BUS не повторяет платежи и платные GPU-действия автоматически. Отмена ожидания в интерфейсе не означает уничтожение GPU.

Границы выпуска

Асинхронный клиент и сервер очередей выпущены. Перевод всех модулей Engine/GoChain и интерфейсов конструктора продолжается по этапам. Результаты отдельного сканирования не заменяют автотесты и проверку на проде.