لوگوی فریم‌ورک Fusion ساخته Cipher UnitFusion

چرخهٔ عمر اپلیکیشن

از شروع فرآیند تا FusionApp.listen چه اتفاقی می‌افتد

چیست؟

چرخهٔ عمر اپلیکیشن ترتیب گام‌ها از شروع فرآیند تا سرو ترافیک HTTP است.

توالی startup

flowchart TD
  A[شروع فرآیند] --> B[Import ماژول‌های route]
  B --> C[ثبت کلاس‌های route در باندینگ]
  C --> D[load_settings_module / EnsureLoaded]
  D --> E[ساخت FusionApp]
  E --> F[اختیاری: app.use middleware]
  F --> G[listen / Listen]
  G --> H[Mount مسیرها روی Hyper]
  H --> I[Mount Swagger در صورت فعال بودن]
  I --> J[پذیرش اتصال‌ها]

جزئیات گام‌ها

گامچه اتفاقی می‌افتد
Import / registerPython/Node: decoratorها هنگام import اجرا می‌شوند. C#: Route.Register<T>()
Settingsبارگذاری fusion.<env>.json (FUSION_ENV، پیش‌فرض dev). پایتون ممکن است attrs با حروف بزرگ از settings / core.settings را merge کند
FusionAppsettings، لیست middleware و handle موتور native را نگه می‌دارد
Middlewareزنجیرهٔ سراسری آماده می‌شود
listenباندینگ مسیرهای ثبت‌شده، مسیرهای اختیاری Swagger، bind روی host/port، و سرو blocking

جریان تنظیمات

flowchart LR
  Env[FUSION_ENV] --> File["fusion.<env>.json"]
  File --> Core[Settings در fusion-core]
  Py[UPPERCASE در settings.py پایتون] --> Core
  Core --> App[FusionApp: host/port/swagger/fingerprint]

اگر JSON یک آبجکت سطح‌بالای config داشته باشد (سبک scaffold CLI)، آن آبجکت به‌عنوان settings merge می‌شود. وگرنه کلیدهای سطح‌بالا (به‌جز env / commands) merge می‌شوند.

Shutdown

listen() معمولاً تا پایان فرآیند block می‌کند. API جداگانه‌ای برای «graceful shutdown» فراتر از سیگنال‌های عادی OS مستند نشده — مدیریت سیگنال را مسئولیت اپلیکیشن بدانید مگر باندینگ شما dispose/using داشته باشد (FusionApp در C# از IDisposable است).

بعدی

در این صفحه