异步调用组件

更新时间:
2024-04-25
下载文档

异步调用组件

本节介绍 AutoCode 异步调用组件。

创建异步调用组件

  1. 在组件编辑器视图工具中选择:Constructo -> AsyncCallMCom

  2. 在组件编辑器视图中绘制异步调用组件,新创建的组件模型如下:

说明:

新建异步调用组件包含两个事件,第一个事件输出端口是 CALL 端口,第二个事件是 finish 事件,finish 只有输入端口,没有输出端口,输入端口为 COM_FIN 端口,COM_FIN 端口在异步调用组件所有其它事件完成之后调用。 异步调用组件可以新建事件。新建事件输入端口自动设置为 BindComPort (绑定第一个事件,由第一个事件输入端口调用),输出端口 为 VSOA-CALL 端口。

异步调用组件介绍

功能描述

异步调用组件可以发起一次或多次 VSOA-CALL 调用请求,组件收到所有调用请求之后触发 COM_FIN 事件。用户可以在 VSOA-CALL 调用请求响应接口缓存结果,然后在 COM_FIN 事件接口访问所有请求数据。

异步调用组件典型应用是组件接受一个输入 VSOA-CALL 请求(第一个事件输入端口为 VSOA-CALL), 在 COM_FIN 事件中处理所有输出端口 VSOA-CALL 返回的数据,然后将最后处理结果返回组件的输入 VSOA-CALL 请求。异步调用组件一般建模模型如下:

组件模型

异步调用组件是多通道管道组件:只有第一个事件输入端口允许外部连接;组件中其它事件为 COM_BIND 事件,第一个事件触发组件其它事件执行。 异步调用组件异步组件最后一个事件为 COM_FIN 事件,该事件只有输入端口(COM_FIN 类型),无输出端口。

异步调用组件除 COM_FIN 事件,其它所有事件输出端口都是 VSOA-CALL 类型,即向其它服务发起 VSOA-CALL 请求,在组件所有事件 VSOA-CALL 请求响应后执行 COM_FIN 事件。 当会话(事件链)由 VSOA-CALL 事件发起时,异步调用组件每个事件端口都有 reply 属性, 通常可以在 COM_FIN 事件上使能 reply 属性(true),从而可以在所有事件 VSOA-CALL 请求响应后返回会话结果。

组件属性

异步调用组件端口属性参考相应的端口事件属性配置。 当异步调用组件输入事件为 VSOA-CALL(第一个事件输入端口)时,可以在组件任何事件端口配制 reply 属性,从而选择在哪个事件接口响应组件 VSOA-CALL 调用。 在 COM_FIN 事件输入端口配置 reply 属性,可以在 COM_FIN 事件接口处理所有其它事件结果后再响应组件 VSOA-CALL 请求。

事件接口

异步调用组件为输入事件(第一个事件)及 COM_BIND 事件创建正常用户接口;异步调用组件为 COM_FIN 事件创建 finish 事件接口,接口原型如下:

ac_result_t serc1_com1_finish_cfin_i(ac_t *acs);

示例

  • 微服务模型
  • serc1 组件模型
  • serc2,serc3 组件模型
  • serc4 组件模型
文档内容是否对您有所帮助?
有帮助
没帮助