第六十四章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期
此页面描述了Production
及其组成部分的生命周期,以供参考。
Production
的生命周期
Production
启动
当Production
开始时,动作顺序如下:
-
Production
类被实例化;其可选的OnStart()
方法执行。 -
Production
实例化每个业务操作并执行其可选的OnProductionStart()
方法。 -
Production
实例化每个业务流程并执行其可选的OnProductionStart()
方法。 -
Production
会清除上一次运行遗留的任何指标值的业务指标缓存。 -
Production
实例化每个业务服务并执行其可选的OnProductionStart()
方法。 -
Production
过程处理已放入队列中的所有项目。这包括Production
停止时排队的异步消息。 - 该
Production
现在接受来自外部IRIS
的输入。
Production Shutdown
当Production
停止时,操作顺序如下:
-
Production
使每个业务服务脱机并执行其可选的OnProductionStop()
方法。此操作会停止来自IRIS
外部的所有请求。 - 所有业务主机都会收到进入静止状态的信号。
- 所有队列都进入静止状态。这意味着从现在开始,业务主机只能处理具有高优先级的队列消息(同步消息)。异步消息保留在各自的队列中。
-
Production
环境尽最大努力完成所有同步消息的处理。 -
Production
使每个业务流程脱机并执行其可选的OnProductionStop()
方法。 -
Production
使每个业务操作脱机并执行其可选的OnProductionStop()
方法。 -
Production
下线。IRIS
在Production
类中执行可选的OnStop()
方法。
业务服务和适配器的生命周期
Production
启动
当开始Production
(或更改特定业务服务的配置)时, IRIS
会自动为每个配置的业务服务类(即生产定义中列出的每个业务服务)执行以下任务:
-
IRIS
调用业务服务的OnProductionStart()
回调方法(如果已定义)。
OnProductionStart()
方法是一个类方法,为Production
配置中列出的每个业务服务类调用一次。业务服务类可以使用此回调来执行它可能需要的任何类范围的初始化。如果业务服务没有适配器,业务服务类可以使用此回调来检查错误。
-
IRIS
创建一个或多个后台进程来执行业务服务。
后台进程的数量由Production
配置中业务服务的 PoolSize
属性决定。每个后台进程被称为业务服务的实例,并且包含业务服务对象的实例。
如果满足以下条件,IRIS
仅会为业务服务创建后台进程:
- 业务服务类必须具有由其
ADAPTER
类参数指定的关联入站适配器类。
没有关联入站适配器的业务服务类称为“无适配器服务”。此类服务不是等待外部事件,而是在进程内调用(可能由复合应用程序调用)。
-
Production
配置中业务服务的Enabled
属性必须设置为1
(否则业务服务将被视为已禁用且不会接受输入)。 -
Production
配置中业务服务的PoolSize
属性必须设置为大于0
的值。
如果Production
配置中业务服务的 Foreground
属性设置为 1
,则 IRIS
将为业务服务创建一个前台进程(即 IRIS
将创建一个终端窗口)。此功能有利于测试和调试。
-
IRIS
初始化系统监控信息,用于监控业务服务的状态和运行历史。 -
在每个后台进程中,
IRIS
执行以下操作:
a. 创建业务服务类的实例。
b. 提供任何业务服务设置的最新配置值
c. 调用业务服务的 OnInit()
回调方法(如果存在)。OnInit()
方法是一个实例方法,它提供了一个方便的位置来执行业务服务的任何初始化逻辑。
d. 创建关联适配器类的实例(如果已定义)并提供任何适配器设置的最新配置值。
网友评论