文章
· 七月 20, 2023 阅读大约需 3 分钟

第六十四章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期

第六十四章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期

此页面描述了Production及其组成部分的生命周期,以供参考。

Production的生命周期

Production启动

Production开始时,动作顺序如下:

  1. Production类被实例化;其可选的 OnStart() 方法执行。
  2. Production实例化每个业务操作并执行其可选的 OnProductionStart() 方法。
  3. Production实例化每个业务流程并执行其可选的 OnProductionStart() 方法。
  4. Production会清除上一次运行遗留的任何指标值的业务指标缓存。
  5. Production实例化每个业务服务并执行其可选的 OnProductionStart() 方法。
  6. Production过程处理已放入队列中的所有项目。这包括Production停止时排队的异步消息。
  7. Production现在接受来自外部 IRIS 的输入。

Production Shutdown

Production停止时,操作顺序如下:

  1. Production使每个业务服务脱机并执行其可选的 OnProductionStop() 方法。此操作会停止来自 IRIS 外部的所有请求。
  2. 所有业务主机都会收到进入静止状态的信号。
  3. 所有队列都进入静止状态。这意味着从现在开始,业务主机只能处理具有高优先级的队列消息(同步消息)。异步消息保留在各自的队列中。
  4. Production环境尽最大努力完成所有同步消息的处理。
  5. Production使每个业务流程脱机并执行其可选的 OnProductionStop() 方法。
  6. Production使每个业务操作脱机并执行其可选的 OnProductionStop() 方法。
  7. Production下线。 IRISProduction类中执行可选的 OnStop() 方法。

业务服务和适配器的生命周期

Production启动

当开始Production(或更改特定业务服务的配置)时, IRIS 会自动为每个配置的业务服务类(即生产定义中列出的每个业务服务)执行以下任务:

  1. IRIS 调用业务服务的 OnProductionStart() 回调方法(如果已定义)。

OnProductionStart() 方法是一个类方法,为Production配置中列出的每个业务服务类调用一次。业务服务类可以使用此回调来执行它可能需要的任何类范围的初始化。如果业务服务没有适配器,业务服务类可以使用此回调来检查错误。

  1. IRIS 创建一个或多个后台进程来执行业务服务。

后台进程的数量由Production配置中业务服务的 PoolSize 属性决定。每个后台进程被称为业务服务的实例,并且包含业务服务对象的实例。

如果满足以下条件,IRIS 仅会为业务服务创建后台进程:

  • 业务服务类必须具有由其 ADAPTER 类参数指定的关联入站适配器类。

没有关联入站适配器的业务服务类称为“无适配器服务”。此类服务不是等待外部事件,而是在进程内调用(可能由复合应用程序调用)。

  • Production配置中业务服务的 Enabled 属性必须设置为 1(否则业务服务将被视为已禁用且不会接受输入)。
  • Production配置中业务服务的 PoolSize 属性必须设置为大于 0 的值。

如果Production配置中业务服务的 Foreground 属性设置为 1,则 IRIS 将为业务服务创建一个前台进程(即 IRIS 将创建一个终端窗口)。此功能有利于测试和调试。

  1. IRIS 初始化系统监控信息,用于监控业务服务的状态和运行历史。

  2. 在每个后台进程中,IRIS 执行以下操作:

a. 创建业务服务类的实例。

b. 提供任何业务服务设置的最新配置值

c. 调用业务服务的 OnInit() 回调方法(如果存在)。OnInit() 方法是一个实例方法,它提供了一个方便的位置来执行业务服务的任何初始化逻辑。

d. 创建关联适配器类的实例(如果已定义)并提供任何适配器设置的最新配置值。

讨论 (0)1
登录或注册以继续