0
点赞
收藏
分享

微信扫一扫

CALL function IN BACKGROUND TASK

汤姆torn 2022-10-14 阅读 116

做接口的时候,经常会遇到类似的场景:

从第三方接收数据,存到本地log表。然后针对这些数据做一些逻辑处理,比如创建单据等。


但是这些处理结果不需要返回给第三方。只要接收到数据并保存的自建表了,那给它返回一个成功标记即可。


这个时候,如果把接收数据 和 根据数据的逻辑处理 一起同步执行完再返回给第三方结果肯定是不合适的。



所以可以考虑下面的方式。


首先是把根据接收数据逻辑处理的部分封装到function中。

接收 保存数据后,调用这个逻辑处理的function时,起用后台job模式,这样就会提高接口的效率,不用再等function中逻辑处理完才能返回。


demo:

首先建一个function:

CALL function  IN BACKGROUND TASK_依赖关系

然后代码随便写了

CALL function  IN BACKGROUND TASK_数据_02

写完直接打一个外部断点。


然后写个程序:

CALL function  IN BACKGROUND TASK_数据_03

直接点击执行。

会发现先得到执行结果后,弹出一个debug界面

CALL function  IN BACKGROUND TASK_依赖关系_04

这就实现了异步。在不影响执行结果的情况下,提高了执行速度。


这里要特别注意的是。函数本身必须是 可远程调用模式,另外必须使用commit work。不提交事务不能触发。



另外还有一种场景是,在增强中,根据过程中的数据需要做什么操作,而这个处理跟目前正在进行的操作没有依赖关系。也可以使用这个来提高执行的速度。


但是增强中使用的话,需要注意什么?自己考虑下吧





举报

相关推荐

0 条评论