一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种事件交互型流程控制方法、装置、系统及相关设备与流程

2022-04-09 06:58:12 来源:中国专利 TAG:


1.本技术涉及流程控制技术领域,更具体地说,是涉及一种事件交互型流程控制方法、装置、系统及相关设备。


背景技术:

2.activiti是一种基于bpmn2.0规范实现的业务流程管理(business process management,bpm)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。activiti可以用于开发工作流(workflow)应用,旨在提供业务过程的部分或整体在计算机应用环境下的自动化的解决方案,通过在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标。
3.金融、风控、取现、反欺诈等相关业务逻辑日趋复杂,并且流程执行依赖于人脸识别、问答、回访等外部环节。目前基于activiti框架开发的有的规则引擎仅支持实时流的决策审批,不支持中断和响应式交互。如果当前环节中断,下次需要重新发起请求,前置环节还要再来一遍。不仅做了重复性工作,并且对调用方不友好,难以应对复杂场景。
4.因此,亟需一种新的业务流程解决方案,使得能够通过和外部交互反馈的方式进行决策输出。交互式流程更加类似于工作流,一个审批流程需要各个审批节点的反馈结果共同决策一次运营活动。


技术实现要素:

5.有鉴于此,本技术提供了一种事件交互型流程控制方法、装置、系统及相关设备,以实现业务流程的中断及恢复。
6.为实现上述目的,本技术第一方面提供了一种事件交互型流程控制方法,包括:
7.当检测到流程执行至预设的交互状态节点时:
8.生成检查点,并将所述检查点的状态及数据返回给调用方,所述检查点的状态用于表征所述交互状态节点的执行状态,所述检查点的数据用于还原所述流程的程序现场;
9.当检测到需要恢复流程时:
10.获取流程的检查点的状态及数据;
11.基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复,并在流程恢复后从流程的交互状态节点开始继续执行所述流程。
12.优选地,所述检查点的数据包括所述流程的流水号、所述流程的上下文数据以及所述交互状态节点的标识;
13.所述生成检查点的过程,包括:
14.对所述流程的数据对象进行记录,得到所述流程的上下文数据;
15.获取所述流程的流水号以及所述交互状态节点的标识;
16.根据所述交互状态节点的标识以及所述流程的上下文数据,生成检查点的数据;
17.将所述交互状态节点的状态设置为待处理,将检查点的状态设置为所述交互状态节点的状态;
18.以数据库表的形式将检查点的状态及数据存储到数据库和/或远程字典服务redis中,所述数据库表的索引包括所述流程的流水号。
19.优选地,基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复的过程,包括:
20.从所述检查点的数据获取所述流程的流水号、所述流程的上下文数据以及所述交互状态节点的标识;
21.基于所述流程的流水号,通过预设的检查点唤醒服务调用所述流程;
22.根据所述交互状态节点的标识以及所述流程的上下文数据,对所述流程进行恢复。
23.优选地,所述获取所述检查点的状态及数据的过程,包括:
24.根据接收到的流程的流水号,从数据库和redis中获取所述检查点的状态及数据。
25.优选地,所述根据接收到的流程的流水号,从数据库和redis中获取所述检查点的状态及数据的过程,包括:
26.根据接收到的流程的流水号,判断redis中是否存在与所述流水号对应的检查点;
27.若是,从redis中获取所述检查点的状态及数据;
28.若否,根据接收到的流程的流水号,从数据库中获取与所述流水号对应的检查点的状态及数据。
29.优选地,所述检查点的状态包括初始化、待处理、处理中和已完结。
30.本技术第二方面提供了一种事件交互型流程控制装置,包括:
31.中断单元,用于:
32.当检测到流程执行至预设的交互状态节点时:
33.生成检查点,并将所述检查点的状态及数据返回给调用方,所述检查点的状态用于表征所述交互状态节点的执行状态,所述检查点的数据用于还原所述流程的程序现场;
34.恢复单元,用于:
35.当检测到需要恢复流程时:
36.获取流程的检查点的状态及数据;
37.基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复,并在流程恢复后从流程的交互状态节点开始继续执行所述流程。
38.本技术第三方面提供了一种事件交互型流程控制设备,包括:存储器和处理器;
39.所述存储器,用于存储程序;
40.所述处理器,用于执行所述程序,实现如上述的事件交互型流程控制方法的各个步骤。
41.本技术第四方面提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述的事件交互型流程控制方法的各个步骤。
42.本技术第五方面提供了一种事件交互型流程控制系统,包括:
43.事件交互型流程管理装置,用于对流程进行创建、编辑和删除的操作,以及对流程进行查看;
44.事件交互型流程控制装置,用于通过上述的事件交互型流程控制方法的各个步骤,对所述流程进行控制,以及将所述流程的执行状态返回给所述事件交互型流程管理装置。
45.经由上述的技术方案可知,本技术根据流程执行的不同时机采取不同的动作:当流程执行至交互状态节点时,生成检查点,以对程序现场进行保存,并将所述检查点的状态及数据返回给调用方。其中,所述检查点的状态用于表征所述交互状态节点的执行状态,所述检查点的数据用于还原所述流程的程序现场。当需要恢复流程时,获取流程的检查点的状态及数据,并基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复。当流程恢复后,从流程的交互状态节点开始继续执行所述流程。本技术允许对流程进行中断,对产生中断的流程生成检查点,以对程序现场进行保存。当需要恢复流程时,再根据检查点信息对流程进行恢复,很好地支持了涉及外部交互反馈的流程决策。
附图说明
46.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
47.图1为本技术实施例公开的事件交互型流程控制方法的示意图;
48.图2示例了本技术实施例公开的一个可中断业务流程的节点连接图;
49.图3示例了本技术实施例公开的一个可中断业务流程的流程图;
50.图4为本技术实施例公开的事件交互型流程控制系统的示意图;
51.图5为本技术实施例公开的事件交互型流程控制装置的示意图;
52.图6为本技术实施例公开的事件交互型流程控制设备的示意图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
54.下面介绍本技术实施例提供的事件交互型流程控制方法。请参阅图1,本技术实施例提供的事件交互型流程控制方法可以包括如下步骤:
55.步骤s101,当检测到流程执行至预设的交互状态节点时,生成检查点,并将该检查点的状态及数据返回给调用方。
56.其中,该检查点的状态用于表征该交互状态节点的执行状态,该检查点的数据用于还原该流程的程序现场。
57.步骤s102,当检测到需要恢复流程时,获取该流程的检查点的状态及数据,基于该检查点的状态及数据,通过预设的检查点唤醒服务调用该流程,对该流程进行恢复,并在流程恢复后从流程的交互状态节点开始继续执行该流程。
58.例如,请同时参阅图2及图3,用户需要通过手机app开通取现业务,于是开启相关的业务流程,该业务流程顺着流程中的各节点一步步地执行,如通过策略节点填写基本信息、验证手机验证码等。然后,经过判断节点,判断为需要执行“a项验证交互节点”的分支;接着,安全起见,在图示中的“a项验证交互节点”处需要用户先接收客服的人工回访,以请求风控。于是当前的业务流程就被中断且保存起来。后续,用户接到回访系统的客服电话,客服确认该用户是本人操作,本人自愿开通取现服务后,会在系统内留下相关记录,返回vms回访结果,表示a验证通过,完成风控。然后用户重新打开app,再次唤起开通借款的业务流程,此时恢复流程,并从“a项验证交互节点”开始执行,在写一个“判断”节点处,app向系统校验出该用户已经接收回访,然后就继续执行业务流程后面的流程节点,最后开通取现服务。
59.通过对流程中断和再恢复的支持,提升了流程复用率的同时,更好的支持带有外部系统交互的业务场景。例如:流程的执行过程中需要暂停当前环节,然后执行人脸核验、问答等外部环节。外部环节执行完毕后唤醒决策流程继续执行,最后根据实际需要通知业务方最终执行结果。
60.本技术实施例根据流程执行的不同时机采取不同的动作:当流程执行至交互状态节点时,生成检查点,以对程序现场进行保存,并将所述检查点的状态及数据返回给调用方。其中,所述检查点的状态用于表征所述交互状态节点的执行状态,所述检查点的数据用于还原所述流程的程序现场。当需要恢复流程时,获取流程的检查点的状态及数据,并基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复。当流程恢复后,从流程的交互状态节点开始继续执行所述流程。本技术允许对流程进行中断,对产生中断的流程生成检查点,以对程序现场进行保存。当需要恢复流程时,再根据检查点信息对流程进行恢复,很好地支持了涉及外部交互反馈的流程决策。
61.此外,本技术实施例与现有实时决策流程控制方法最大的区别就是支持了流程中断和再恢复,一方面提升流程复用率,另一方面中断过程中引入的外部交互环节使程序更加灵活。中断的流程被唤醒并再次执行时,可以依托消息中间件告知业务方流程最终结果,为调用方提供了更加友好的接口。
62.在本技术的一些实施例中,步骤s101及步骤s102所提及的检查点的状态,可以包括初始化、待处理、处理中和已完结。
63.其中,当业务流程执行到交互状态节点时,交互状态节点开启,检查点的状态为初始化;当交互状态节点开始执行,检查点的状态为处理中;当业务流程需要中断跳出,并且对程序现场进行了保存,检查点的状态为待处理;当业务流程再次被唤醒,检查点的状态由待处理转为处理中;当业务流程中所有业务节点被执行完,检查点的状态为已完结。可以理解的是,本段所描述的检查点为对应于该交互状态节点的检查点。
64.在本技术的一些实施例中,步骤s101及步骤s102所提及的检查点的数据,可以包括该流程的流水号、该流程的上下文数据以及该交互状态节点的标识。
65.在本技术的一些实施例中,上述步骤s101生成检查点的过程,可以包括:
66.s1,对该流程的数据对象进行记录,得到该流程的上下文数据。
67.s2,获取该流程的流水号以及该交互状态节点的标识。
68.s3,根据该交互状态节点的标识以及该流程的上下文数据,生成检查点的数据。
69.s4,将该交互状态节点的状态设置为待处理,将检查点的状态设置为该交互状态节点的状态(即待处理)。
70.s5,以数据库表的形式将检查点的状态及数据存储到数据库和redis(远程字典服务)中的至少一种实体中。
71.其中,该数据库表的索引可以包括该流程的流水号。如果将检查点的状态及数据存储到缓存redis中,该存储的数据可以在24小时内有效,便于流程被唤起时,对数据进行快速恢复;如果将检查点的状态及数据持久化地存储到数据库(如mysql)中,该存储的数据长期有效,当中断的流程被再次唤起,如果上述缓存已经失效或者过期,可以通过数据库对数据进行恢复。
72.通过上述各步骤对检查点进行保存,将流程运行的中间状态持久化地保存到数据库中。当流程再次被唤起的时候(可以是外部调用或者定时任务定时执行),根据指定的流程编号,再从数据库中恢复流程运行的数据,继续执行流程后续节点。如果保存数据时同时包括缓存和数据库持久存储两种形式,不管中断几小时,都可以再次恢复数据。
73.在本技术的一些实施例中,上述步骤s102基于该检查点的状态及数据,通过预设的检查点唤醒服务调用该流程,以及对该流程进行恢复的过程,可以包括:
74.s1,从该检查点的数据获取该流程的流水号、该流程的上下文数据以及该交互状态节点的标识。
75.s2,基于该流程的流水号,通过预设的检查点唤醒服务调用该流程。
76.s3,根据该交互状态节点的标识以及该流程的上下文数据,对该流程进行恢复。
77.在本技术的一些实施例中,上述步骤s102获取该流程的检查点的状态及数据的过程,可以包括:
78.根据接收到的流程的流水号,从数据库和redis中获取该流程的检查点的状态及数据。
79.可选地,由于从缓存中进行数据读取的速度比较快,因此,可以先尝试从redis中获取该流程的检查点的状态及数据;当获取失败时(例如,由于缓存失效的原因),再从数据库中获取该流程的检查点的状态及数据。
80.下面对本技术实施例提供的事件交互型流程控制系统进行描述。请参见图4,本技术实施例提供的事件交互型流程控制系统,可以包括:
81.事件交互型流程管理装置10,用于对流程进行创建、编辑和删除的操作,以及对流程进行查看;
82.事件交互型流程控制装置20,用于通过上述的事件交互型流程控制方法的各个步骤,对所述流程进行控制,以及将所述流程的运行状态返回给所述事件交互型流程管理装置10。
83.其中,事件交互型流程管理装置10对流程进行查看的过程,可以包括:对流程的运行状态进行查询、展示及监控。
84.本技术涉及的事件交互型流程在执行过程中会伴随着暂停与恢复,所以一个完整的流程运行周期可能长达数分钟甚至数小时。在这种种情况下,流程的进展查询、展示、监控就显得尤为重要。通过事件交互型流程管理装置10,则可以方便的查看各流程的运行状态,如查看其暂停记录、恢复条件是否达成、恢复时刻等信息。
85.下面对本技术实施例提供的事件交互型流程控制装置20进行描述,下文描述的事件交互型流程控制装置20与上文描述的事件交互型流程控制方法可相互对应参照。
86.请参见图5,本技术实施例提供的事件交互型流程控制装置20,可以包括:
87.中断单元21,用于:
88.当检测到流程执行至预设的交互状态节点时:
89.生成检查点,并将所述检查点的状态及数据返回给调用方,所述检查点的状态用于表征所述交互状态节点的执行状态,所述检查点的数据用于还原所述流程的程序现场;
90.恢复单元22,用于:
91.当检测到需要恢复流程时:
92.获取流程的检查点的状态及数据;
93.基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复,并在流程恢复后从流程的交互状态节点开始继续执行所述流程。
94.在本技术的一些实施例中,中断单元21及恢复单元22所提及的检查点的数据,可以包括所述流程的流水号、所述流程的上下文数据以及所述交互状态节点的标识。
95.在本技术的一些实施例中,中断单元21及恢复单元22所提及的检查点的状态包括初始化、待处理、处理中和已完结。
96.在本技术的一些实施例中,中断单元21生成检查点的过程,可以包括:
97.对所述流程的数据对象进行记录,得到所述流程的上下文数据;
98.获取所述流程的流水号以及所述交互状态节点的标识;
99.根据所述交互状态节点的标识以及所述流程的上下文数据,生成检查点的数据;
100.将所述交互状态节点的状态设置为待处理,将检查点的状态设置为所述交互状态节点的状态;
101.以数据库表的形式将检查点的状态及数据存储到数据库和/或远程字典服务redis中,所述数据库表的索引包括所述流程的流水号。
102.在本技术的一些实施例中,恢复单元22基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复的过程,可以包括:
103.从所述检查点的数据获取所述流程的流水号、所述流程的上下文数据以及所述交互状态节点的标识;
104.基于所述流程的流水号,通过预设的检查点唤醒服务调用所述流程;
105.根据所述交互状态节点的标识以及所述流程的上下文数据,对所述流程进行恢复。
106.在本技术的一些实施例中,恢复单元22所述获取所述检查点的状态及数据的过程,包括:
107.根据接收到的流程的流水号,从数据库和redis中获取所述检查点的状态及数据。
108.本技术实施例提供的事件交互型流程控制装置可应用于事件交互型流程控制设备,如计算机等智能设备。可选的,图6示出了事件交互型流程控制设备的硬件结构框图,参照图6,事件交互型流程控制设备的硬件结构可以包括:至少一个处理器31,至少一个通信接口32,至少一个存储器33和至少一个通信总线34。
109.在本技术实施例中,处理器31、通信接口32、存储器33、通信总线34的数量为至少
一个,且处理器31、通信接口32、存储器33通过通信总线34完成相互间的通信;
110.处理器31可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路等;
111.存储器32可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
112.其中,存储器33存储有程序,处理器31可调用存储器33存储的程序,所述程序用于:
113.当检测到流程执行至预设的交互状态节点时:
114.生成检查点,并将所述检查点的状态及数据返回给调用方,所述检查点的状态用于表征所述交互状态节点的执行状态,所述检查点的数据用于还原所述流程的程序现场;
115.当检测到需要恢复流程时:
116.获取流程的检查点的状态及数据;
117.基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复,并在流程恢复后从流程的交互状态节点开始继续执行所述流程。
118.可选的,所述程序的细化功能和扩展功能可参照上文描述。
119.本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
120.当检测到流程执行至预设的交互状态节点时:
121.生成检查点,并将所述检查点的状态及数据返回给调用方,所述检查点的状态用于表征所述交互状态节点的执行状态,所述检查点的数据用于还原所述流程的程序现场;
122.当检测到需要恢复流程时:
123.获取流程的检查点的状态及数据;
124.基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复,并在流程恢复后从流程的交互状态节点开始继续执行所述流程。
125.可选的,所述程序的细化功能和扩展功能可参照上文描述。
126.综上所述:
127.本技术根据流程执行的不同时机采取不同的动作:当流程执行至交互状态节点时,生成检查点,以对程序现场进行保存,并将所述检查点的状态及数据返回给调用方。其中,所述检查点的状态用于表征所述交互状态节点的执行状态,所述检查点的数据用于还原所述流程的程序现场。当需要恢复流程时,获取流程的检查点的状态及数据,并基于所述检查点的状态及数据,通过预设的检查点唤醒服务调用所述流程,以及对所述流程进行恢复。当流程恢复后,从流程的交互状态节点开始继续执行所述流程。本技术允许对流程进行中断,对产生中断的流程生成检查点,以对程序现场进行保存。当需要恢复流程时,再根据检查点信息对流程进行恢复,很好地支持了涉及外部交互反馈的流程决策。
128.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
129.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
130.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献