做接口的时候,经常会遇到类似的场景:
从第三方接收数据,存到本地log表。然后针对这些数据做一些逻辑处理,比如创建单据等。
但是这些处理结果不需要返回给第三方。只要接收到数据并保存的自建表了,那给它返回一个成功标记即可。
这个时候,如果把接收数据 和 根据数据的逻辑处理 一起同步执行完再返回给第三方结果肯定是不合适的。
所以可以考虑下面的方式。
首先是把根据接收数据逻辑处理的部分封装到function中。
接收 保存数据后,调用这个逻辑处理的function时,起用后台job模式,这样就会提高接口的效率,不用再等function中逻辑处理完才能返回。
demo:
首先建一个function:
然后代码随便写了
写完直接打一个外部断点。
然后写个程序:
直接点击执行。
会发现先得到执行结果后,弹出一个debug界面
这就实现了异步。在不影响执行结果的情况下,提高了执行速度。
这里要特别注意的是。函数本身必须是 可远程调用模式,另外必须使用commit work。不提交事务不能触发。
另外还有一种场景是,在增强中,根据过程中的数据需要做什么操作,而这个处理跟目前正在进行的操作没有依赖关系。也可以使用这个来提高执行的速度。
但是增强中使用的话,需要注意什么?自己考虑下吧