CPI教程-异步接口创建及使用
CPI教程-异步接口创建及使用
create by yi
转载请注明出处
先简单介绍一下同步接口和异步接口
什么是同步接口
同步接口的意思就是发送方发送Message后,接口方处理完成后会立刻返回执行结果给发送方,此为同步接口。
同步接口多用于数据量小,可以立刻处理完成并返回结果的系统。
什么是异步接口
异步接口的意思是指发送方发送Message后,接口方会立刻返回是否成功接收信息的返回,一般状态是202 Accepted,但是接收方在接收到Message后,不会立刻执行,或者执行需要一定的时间,没有办法立刻返回执行结果,比较完善的接口会在执行完成后,再请求发送方接口,把数据返回,也有些接口是需要发送方在一定时间后再次执行查询,获取接口执行结果。
异步接口多用于数据处理比较大,或者需要流程处理的系统,比如BPM系统。
CPI如何创建异步接口
下面我们来说说创建步骤
- 第一步,我们需要创建一个新的IFlow,大家自行创建即可,这里不详述。
- 第二步,发送方创建一个Soap的Adapter,参数如下
下图是我创建的一个完整示例
其中Content Modifier2记录了发送方发送的时间
Groovy中是一个延时代码,延时时间为3秒
Content Modifier1记录了延时后的发送时间,并创建了一个Body,把发送时间,延时发送时间记录下来
下面是测试
首先我们在Postman中创建一个连接,连接到测试的异步接口
上图我们看到,接口的执行时间是62ms,发送的body这里没有限制,只要是符合soap规范的body就行
然后我们看看CPI的接口执行情况
上图可以看出CPI中这接口执行了3秒多,但是我们的Postman62ms就已经执行完成了
我们再来看看Body
这样我们就可以简简单单的创建了一个异步执行的接口了
CPI教程-异步接口创建及使用的更多相关文章
- 基于C#的MongoDB数据库开发应用(3)--MongoDB数据库的C#开发之异步接口
在前面的系列博客中,我曾经介绍过,MongoDB数据库的C#驱动已经全面支持异步的处理接口,并且接口的定义几乎是重写了.本篇主要介绍MongoDB数据库的C#驱动的最新接口使用,介绍基于新接口如何实现 ...
- hiredis异步接口封装并导出到Lua
hiredis异步接口封装并导出到Lua(金庆的专栏 2017.1)hiredis 不支持 Windows, Windows 下使用 wasppdotorg / hiredis-for-windows ...
- 任务队列和异步接口的正确打开方式(.NET Core版本)
任务队列和异步接口的正确打开方式 什么是异步接口? Asynchronous Operations Certain types of operations might require processi ...
- java单元测试之如何实现异步接口的测试案例
测试是软件发布的重要环节,单元测试在实际开发中是一种常用的测试方法,java单元测试主要用junit,最新是junit5,本人开发一般用junit4.因为单元测试能够在软件模块组合之前尽快发现问题,所 ...
- Python怎么测试异步接口
当业务处理比较耗时时, 接口一般会采用异步处理的方式, 这种异步处理的方式又叫Future模式. 一般流程 当你请求一个异步接口,接口会立刻返回你一个结果告诉你已经开始处理,结果中一般会包含一个任务i ...
- [ABP教程]第一章 创建服务端
Web应用程序开发教程 - 第一章: 创建服务端 关于本教程 在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以下技术开发 ...
- 如何解决异步接口请求快慢不均导致的数据错误问题? - DevUI
DevUI 是一款面向企业中后台产品的开源前端解决方案,它倡导沉浸.灵活.至简的设计价值观,提倡设计者为真实的需求服务,为多数人的设计,拒绝哗众取宠.取悦眼球的设计.如果你正在开发 ToB 的工具类产 ...
- Swift3.0语言教程使用编码创建和初始化字符串
Swift3.0语言教程使用编码创建和初始化字符串 使用编码创建和初始化字符串 创建和初始化字符串除了可以使用上文中提到的方法外,还可以使用init(coder:)方法,此方法一般不常使用,其语法形式 ...
- Swift3.0语言教程使用指针创建和初始化字符串
Swift3.0语言教程使用指针创建和初始化字符串 Swift3.0语言教程使用指针创建和初始化字符串苹果的Swift团队花了不少功夫来支持C的一些基础特性.C语言中为我们提供了指针,Swift也不例 ...
随机推荐
- 搜索与图论①-深度优先搜索(DFS)
深度优先搜索(DFS) 例题一(指数型枚举) 把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序. 输入格式 一个整数 n. 输出格式 按照从小到大的顺序输出所有方案,每行 1 个. ...
- 利用java反射机制实现List>转化为List
BEGIN; 最近在用hibernate做项目,由于后续的业务功能比较多,然后框架原设计没有使用到一对多.一对一等特性,(艹TA妹)没办法,只能用原生sql语句获得需要的结果集.但是返回过来的是一个L ...
- 清除安装的Rancher、K8s
#清除主机的所有容器.挂载.镜像(慎用) docker stop $(docker ps -aq) docker system prune -f docker volume rm $(docker v ...
- netty系列之:netty中的核心编码器base64
目录 简介 netty codec的实现逻辑 netty中Base64的实现 netty中的base64编码和解码器 Base64Encoder Base64Decoder 总结 简介 我们知道数据在 ...
- springboot简单发送邮件介绍
1.新建一个springboot项目 2.所需要的的jar包: <dependency> <groupId>org.springframework.boot</group ...
- 一文带你读懂什么是docker
一 简介 1.了解Docker的前生LXC LXC为Linux Container的简写.一种轻量级的内核虚拟化技术,隔离进程和资源. Linux Container有点像chroot,提供了一个拥有 ...
- 跟我学Python图像处理丨获取图像属性、兴趣ROI区域及通道处理
摘要:本篇文章主要讲解Python调用OpenCV获取图像属性,截取感兴趣ROI区域,处理图像通道. 本文分享自华为云社区<[Python图像处理] 三.获取图像属性.兴趣ROI区域及通道处理 ...
- 关于数据拓展及面试题讲解 Java
强类型语言 要求变量的使用严格符合规定,所有变量都必须先定义后才能使用 弱类型语言 Java 的数控类型分为两大类 基本类型(primitive type) 引用类型(reference type) ...
- node技术是啥?
node.js 一句话,就是把js代码放在服务器段运行的一种技术.
- HBase数据库基础操作
实验要求: 根据上面给出的学生表Student的信息,执行如下操作: 用Hbase Shell命令创建学生表Student: create 'student','name', 'score' put ...