文档中心

探索 DWeb 框架的无限可能,构建下一代高性能 Web 应用

LifecycleManager (生命周期管理器)

`LifecycleManager` 管理应用的生命周期,统一处理启动、运行、关闭流程,支持生命周期钩子。

概述

LifecycleManager 负责管理应用的生命周期阶段,支持生命周期钩子,确保应用的正确启动和关闭。

生命周期阶段

Code
应用的生命周期包括以下阶段:

- Initializing - 初始化中
- Initialized - 已初始化
- Starting - 启动中
- Running - 运行中
- Stopping - 停止中
- Stopped - 已停止

快速开始

基本使用

Code
// LifecycleManager 由 Application 类内部使用,通常不需要直接创建
import { Application } from "@dreamer/dweb";

const app = new Application();
await app.initialize(); // 内部使用 LifecycleManager
await app.start();      // 内部使用 LifecycleManager
await app.stop();       // 内部使用 LifecycleManager

注册生命周期钩子

Code
// 注册生命周期钩子
import { Application } from "@dreamer/dweb";
import type { LifecycleHooks } from "@dreamer/dweb";

const app = new Application();
await app.initialize();

// 获取生命周期管理器
const lifecycleManager = app.getService("lifecycleManager") as any;

// 注册生命周期钩子
lifecycleManager.registerHooks({
  onInitialize: async () => {
    console.log("应用初始化中...");
  },
  onStart: async () => {
    console.log("应用启动中...");
  },
  onStop: async () => {
    console.log("应用停止中...");
  },
  onShutdown: async () => {
    console.log("应用已关闭");
  },
});

await app.start();

生命周期钩子

Code
// 生命周期钩子类型定义
interface LifecycleHooks {
  onInitialize?: () => Promise<void> | void;  // 初始化钩子
  onStart?: () => Promise<void> | void;        // 启动钩子
  onStop?: () => Promise<void> | void;         // 停止钩子
  onShutdown?: () => Promise<void> | void;     // 关闭钩子
}

**说明:**

**`onInitialize`**:在应用初始化时调用

**`onStart`**:在应用启动时调用

**`onStop`**:在应用停止时调用

**`onShutdown`**:在应用关闭时调用

API 参考

构造函数

Code
constructor(application: Application)

**参数:**

  • application: Application - 应用实例

方法

registerHooks(hooks)

注册生命周期钩子。

Code
lifecycleManager.registerHooks({
  onInitialize: async () => {
    // 初始化钩子
  },
  onStart: async () => {
    // 启动钩子
  },
  onStop: async () => {
    // 停止钩子
  },
  onShutdown: async () => {
    // 关闭钩子
  },
});

getPhase()

获取当前生命周期阶段。

Code
const phase = lifecycleManager.getPhase();
console.log("当前阶段:", phase);

setPhase(phase)

设置生命周期阶段(通常由框架内部调用)。

Code
lifecycleManager.setPhase(LifecyclePhase.Running);

相关文档