[发明专利]异步系统的实现方法、计算机设备和存储介质有效
申请号: | 201910897237.7 | 申请日: | 2019-09-23 |
公开(公告)号: | CN110825441B | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 王耀民;许涛涛;汤士伟;张丽;潘宁;徐奎东;沈欢;杨秋芬 | 申请(专利权)人: | 万达信息股份有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 上海硕力知识产权代理事务所(普通合伙) 31251 | 代理人: | 刘秋香 |
地址: | 200233 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异步 系统 实现 方法 计算机 设备 存储 介质 | ||
本发明提供了一种异步系统的实现方法、计算机设备和存储介质,所述方法包括:当流程节点的执行存在异步非阻塞调用时,预备异步回调处理,所述异步回调处理被缓存至全局缓存列表中,并保存当前流程节点的线程上下文;执行所述异步非阻塞调用;当所述异步非阻塞调用执行完成时,释放当前线程,异步非阻塞方法异步回调时重新申请线程并恢复线程上下文进行回调处理。通过本发明提供的异步系统的实现方法、计算机设备和存储介质,能够提高工作流引擎的并发处理性能,特别地,当流程节点存在的外部调用耗时越长,并发处理的性能提升越明显。
技术领域
本发明涉及异步系统技术领域,尤指异步系统的实现方法、计算机设备和存储介质。
背景技术
目前,无论商业还是开源的工作流都是基于同步阻塞模式执行流程,也就是说每个流程实例的执行过程中都需要占用一个或多个线程,如图1所示,只有该流程节点实例执行结束才能释放该相关线程资源。
但是通常情况下,处理流程节点的操作都会存在一些外部调用等操作,虽然这些外部调用操作的主要计算过程由外部服务提供,但流程节点的操作实例线程会一直阻塞以等待服务计算结果,从而导致线程资源的利用率低下,系统的并发处理性能较差。
发明内容
本发明的目的是提供一种异步系统的实现方法、计算机设备和存储介质,以提高工作流引擎的并发处理性能。
本发明提供的技术方案如下:
第一方面,本发明提供一种异步系统的实现方法,包括步骤:
当流程节点的执行存在异步非阻塞调用时,预备异步回调处理,所述异步回调处理被缓存至全局缓存列表中,并保存当前流程节点的线程上下文;
所述异步非阻塞被调用,释放当前线程;
重新申请回调处理时的线程,并恢复所述线程上下文进行回调处理。
进一步的,所述方法还包括:
当所述异步非阻塞调用收到响应时,从所述全局缓存列表中查找所述异步回调处理。
进一步的,所述方法还包括:
当查找到所述异步回调处理时,从工作流线程池中申请线程资源,并还原已保存的线程上下文,使用申请到的线程资源执行异步回调处理。
进一步的,所述方法还包括:
在所述异步回调处理结束前,判断是否存在可执行流程节点,若是,则流程引擎调用下节点逻辑,所述下节点为同步执行节点,回调时重新申请的线程继续执行下节点逻辑。
进一步地,所述方法还包括:
当所述下节点逻辑执行完成时,继续判断是否存在后续可执行节点,若否,则流程节点实例执行完成,释放所述流程节点实例相关的线程资源。
第二方面,本发明实施例还提供了一种用于实现异步系统的计算机设备,所述计算机设备包括:
一个或更多个处理器;
一个或更多个存储器;
一个或更多个模块,其被存在存储器中且能够由所述一个或更多个处理器中的至少一个处理器以执行第一方面异步系统实现方法的步骤。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如第一方面所述异步系统实现方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于万达信息股份有限公司,未经万达信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910897237.7/2.html,转载请声明来源钻瓜专利网。