第六十七章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期 - BO和适配器的生命周期
第六十七章 开发Productions - ObjectScript Productions - Production品及其零部件的生命周期 - BO和适配器的生命周期
BO和适配器的生命周期
IRIS 自动管理每个业务操作的生命周期。
Production Startup
当Production生产(或更改特定业务操作的配置)时, IRIS 自动为每个配置的业务操作类(即,为Production定义中列出的每个业务操作)执行以下任务:
- 它调用类的
OnProductionStart()回调方法(如果已定义)。
OnProductionStart() 方法是一种类方法,它为Production配置中列出的每个业务操作类调用一次。业务操作类可以使用此回调来执行它可能需要的任何类范围的初始化。
- 它创建一个或多个后台进程来执行业务操作。
后台进程的数量由Production配置中业务操作的 PoolSize 属性决定。每个后台进程都称为业务操作的实例,并包含业务操作对象的实例。
如果满足以下条件, IRIS 只会为业务操作创建后台进程:
- 业务操作类必须将其
INVOCATION类参数设置为Queue。 Production配置中业务操作的Enabled属性必须设置为 1(否则业务操作被视为已禁用)。已禁用的业务操作仍具有传入消息队列。在启用业务操作之前,不会处理发布到此队列的任何请求。Production配置中业务操作的PoolSize属性必须设置为大于0的值。
如果Production配置中业务操作的 Foreground 属性设置为 1,则 IRIS 将为业务操作创建一个前台进程(即,它将创建一个终端窗口)。此功能有利于测试和调试。
它初始化系统监控信息,用于监控业务运行的状态和运行历史。
在每个后台进程中:
IRIS创建业务操作类的实例,提供任何业务操作设置的最新配置值,并调用业务操作OnInit()回调方法(如果存在)。OnInit()方法是一个实例方法,它提供了一个方便的地方来执行业务操作的任何初始化逻辑。- 创建关联适配器类的实例(如果已定义)并提供任何适配器设置的最新配置值。
Runtime
在运行时,业务操作执行以下操作:
- 它等待请求(从业务服务、业务流程和其他业务操作)发送到其关联的消息队列。
- 当业务操作从其消息队列中检索到请求后,它会在其消息映射中搜索与该请求类型对应的操作方法。然后它调用该操作方法。
- 操作方法使用请求对象中的数据向外部应用程序发出请求。通常,它通过调用其关联的出站适配器对象的一个或多个方法来完成此操作。
Production Shutdown
当Production停止时,会发生以下与业务运营相关的事件:
IRIS等待每个业务操作达到静止状态(即,IRIS等待每个业务操作完成其所有同步请求)。- 调用每个出站适配器中的
OnTearDown()方法。 - 所有出站适配器和业务操作对象都被销毁,并且它们的后台进程被终止。
- 每个业务操作的
OnProductionStop()类方法都会针对生产中该类的每个配置项调用一次。
当系统管理员禁用业务操作或根据其配置的计划变为非活动状态时,Production将继续运行,但关联的出站适配器将关闭,并执行其 OnTearDown() 方法。