OxL Справочник OxL
РусскийEnglish

2.4 Точки входа и порядок запуска

Программа — пакет, содержащий хотя бы одно из: fn main(), объявление cluster (§12.1), объявление service. Запуск узла:

  1. Вычисляются const (на этапе компиляции, §4.1).
  2. Загружается и проверяется статический конфиг (§14.1). Ошибка — завершение с кодом 78.
  3. Если есть cluster: вход в кластер и получение ролей (§12.2). Иначе узел получает неявную роль all.
  4. Выполняются provide для ролей узла и связываются dep (§12.7).
  5. Поднимаются сервисы, акторы, пайплайны, топики и задачи-лидеры ролей узла.
  6. Если есть fn main(), она выполняется как задача запуска. Ошибка из main — завершение с кодом 1.
  7. Если узел ничего не размещает (нет сервисов, акторов, подписок, задач фонового scope), он завершается после main с кодом 0. Иначе работает до SIGTERM/SIGINT, затем дренирует запросы (drain из cluster.defaults, по умолчанию 30 с).

fn main() МОЖЕТ иметь сигнатуру fn main() -> () | E, эффекты не ограничены.

no-entry-point

См. также

Исходник: docs/spec/oxl-standard.md