WebAPI性能优化建议

webapi数据处理过程:
1. 首先对接受到的客户端数据包中每个字段值进行解析(解析分为取数,赋值,触发值更新事件,调用表单服务等)
2. 解析完,调用APP层操作服务(其中保存接口还会走mvc层中维护插件的beforeSave和aftereSave事件,其他接口不会走维护插件事件)
3. APP层操作服务,主要对数据进行验证,触发操作插件事件,执行关联的业务流程(比如是否走反写引擎)等。
4. 最后,KSql引擎解析sql,通过DB层把数据保存或更新到数据库。
页面数据处理过程:
1.首先用户点击菜单,mvc层接受到菜单动作,触发相应的维护插件事件,调用菜单对应的业务层操作,
业务层的操作服务根据各种配置执行相关的业务逻辑,比如保存后是否提交,提交是否触发工作流等。
2. 业务层的操作服务同样要调用对应的APP操作服务,App层操作服务跟webapi调用的相同,
3. 调用完了APP层服务可能还有其他业务处理,比如提交后是否审核等。
webapi数据处理过程 VS 页面数据处理过程主要区别
1. webapi需要对字段值进行解析,页面不需要
2. webapi不会走业务逻辑层,页面会走
根据上面区别,我们建议可以从下面几点来做性能优化:
1. 服务端收到消息后首先对接收到的客户端数据包中每个字段值进行解析(解析分为取数,赋值,触发值更新事件,调用表单服务等),所以尽可能精简Josn数据包里面的字段。
2. 尽量使用批量保存代替保存接口,因为保存接口会多走beforeSave和aftereSave事件,并且每次只能处理一条数据,
而批量保存接口不仅可以批量处理还可以开后台线程并发执行。 但是调用批量保存接口BatchCount(服务端开启线程数)建议控制在5个之内。
3.业务层面在WebAPI调用时候,一些取价服务、取折扣服务可以考虑禁用,具体参考销售订单、销售出单相关说明:
https://vip.kingdee.com/article/11179
https://vip.kingdee.com/article/42071
4. 客户端可以开多个线程调用,但是线程数量不易
WebAPI性能优化建议
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



