CN116976815A - 流程业务数据处理方法、装置、计算机设备及存储介质 - Google Patents
流程业务数据处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116976815A CN116976815A CN202310953208.4A CN202310953208A CN116976815A CN 116976815 A CN116976815 A CN 116976815A CN 202310953208 A CN202310953208 A CN 202310953208A CN 116976815 A CN116976815 A CN 116976815A
- Authority
- CN
- China
- Prior art keywords
- flow
- data
- service
- queue
- instance data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 136
- 238000012545 processing Methods 0.000 title claims abstract description 41
- 230000008569 process Effects 0.000 claims abstract description 102
- 230000015654 memory Effects 0.000 claims abstract description 46
- 238000002360 preparation method Methods 0.000 claims abstract description 24
- 238000003672 processing method Methods 0.000 claims abstract description 9
- 239000000725 suspension Substances 0.000 claims abstract description 8
- 230000000903 blocking effect Effects 0.000 claims description 12
- 238000012546 transfer Methods 0.000 claims description 11
- 230000009471 action Effects 0.000 claims description 6
- 230000009191 jumping Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002045 lasting effect Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000008033 biological extinction Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000009417 prefabrication Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及流程业务技术领域,公开了一种流程业务数据处理方法、装置、计算机设备及存储介质。其中,方法,基于预备执行队列、正在执行队列、挂起执行队列和已执行完队列的缓存规则,缓存协程中的流程实例数据和流程业务数据;基于正在执行队列缓存后的协程中的流程实例数据和流程业务数据,通过协程处理业务请求指令对应的流程业务。本发明可以利用协程和不同队列进行流程数据优化,避免了短时间内重复加载创建状态机,起到了一个缓存快速响应的作用。并且相对与采用多线程的方式来说,协程减少了线程切换的开销,并且协程更加轻量,在节省内存的同时还提高了CPU的利用率。
Description
技术领域
本发明涉及流程业务技术领域,具体涉及一种流程业务数据处理方法、装置、计算机设备及存储介质。
背景技术
流程业务引擎系统通过对流程数据进行处理,以广泛应用于各行各业中。相关技术中,在流程数据处理过程中,实时将各类不同流程数据同时运行在内存中,导致流程业务引擎系统在数据处理中的运行内存占用空间增大,影响系统运行速率。
发明内容
有鉴于此,本发明提供了一种一种流程业务数据处理方法、装置、计算机设备及存储介质,以解决流程业务引擎系统在处理过程中的运行内存占用空间增大及系统运行速率大的问题。
根据第一方面,本发明实施例提供一种流程业务数据处理方法,方法包括:
获取用户提交的业务请求指令;
基于业务请求指令,获取与流程业务对应的流程实例数据和流程业务数据,流程实例数据基于流程名称、流程类型、流程状态、当前节点、参与人、节点数据、业务标识生成,流程业务数据基于业务请求人信息、业务请求原因、业务请求时间和业务关联数据生成;流程业务数据与流程实例数据基于业务标识绑定;
将流程实例数据和流程业务数据转入协程,并创建用于缓存协程中的流程实例数据和流程业务数据的预备执行队列、正在执行队列、挂起执行队列和已执行完队列;
基于预备执行队列、正在执行队列、挂起执行队列和已执行完队列的缓存规则,缓存协程中的流程实例数据和流程业务数据;
基于正在执行队列缓存后的协程中的流程实例数据和流程业务数据,通过协程处理业务请求指令对应的流程业务。
通过执行上述实施方式,利用了Lua协程和不同队列进行流程数据优化,避免了短时间内重复加载创建状态机,起到了一个缓存快速响应的作用。并且相对与采用多线程的方式来说,协程减少了线程切换的开销,并且协程更加轻量,在节省内存的同时还提高了CPU的利用率。
在一种可选的实施方式中,基于预备执行队列、正在执行队列、挂起执行队列和已执行完队列的缓存规则,缓存协程中的流程实例数据和流程业务数据,包括:
在已执行完队列中检索是否存在业务请求指令对应的流程实例数据和流程业务数据;
若在已执行完队列中检索到存在业务请求指令对应的流程实例数据和流程业务数据,从已执行完队列中获取业务请求对应的协程中的流程实例数据和流程业务数据;
将协程中的流程实例数据和流程业务数据转入预备执行队列缓存;
将协程中的流程实例数据和流程业务数据转入正在执行队列中缓存;
判断正在执行队列中缓存的流程实例数据和流程业务数据是否发生阻塞;
若正在执行队列中缓存的流程实例数据和流程业务数据发生阻塞,则协程中的流程实例数据和流程业务数据转入挂起执行队列直到阻塞消除转入预备执行队列缓存;
若正在执行队列中缓存的流程实例数据和流程业务数据没有发生阻塞,则转入所述正在执行队列缓存所述协程中的所述流程实例数据和所述流程业务数据,等待所述协程处理所述业务请求指令对应的流程业务。
通过执行上述实施方式,基于预备执行队列、正在执行队列、挂起执行队列和已执行完队列的缓存规则,缓存协程中的流程实例数据和流程业务数据,可以缓存快速响应的作用,无需在内存中同时加载各类不同数据,进而达到节省内存的同时还提高了CPU的利用率效果。
在一种可选的实施方式中,本实施例中的方法,还包括:
若在已执行完队列中未检索到业务请求对应的流程实例数据和流程业务数据,则从状态机模型获取业务请求对应的流程实例数据和流程业务数据;
跳入将协程中的流程实例数据和流程业务数据转入预备执行队列缓存在已执行完队列中检索是否存在业务请求对应的流程实例数据和流程业务数据的步骤继续执行。
通过执行上述实施方式,即使优先在已执行完队列中无法检索到业务请求对应的流程实例数据和流程业务数据,也可以仅在执行时加载状态机模型,无需实时重复加载状态机模型,进而达到减少了内存占用,极大提高了可创建流程数量的目的。
在一种可选的实施方式中,在通过协程处理业务请求指令对应的流程业务的步骤之后还包括:
转入已执行完队列,并基于预设时间存储协程中的流程实例数据和流程业务数据;
当超出预设时间,删除协程和协程中的流程实例数据和流程业务数据。
通过执行上述实施方式,基于预设时间持久化存储协程中的流程实例数据和流程业务数据,有利于充分利用系统资源,并且基于预设时间自动将不打算使用的协程数据销毁,减少资源的浪费并且加快了流程的执行速度。
在一种可选的实施方式中,所述从状态机模型加载所述业务请求指令对应的所述流程实例数据和所述流程业务数据,包括:
基于加载所述状态机模型中的所述流程状态节点获取所述流程实例数据和所述流程业务数据。
通过执行上述实施方式,仅在执行时加载状态机模型,无需实时重复加载状态机模型,进而达到减少了内存占用,极大提高了可创建流程数量的目的。
根据第二方面,本发明实施例提供一种流程业务数据处理装置,装置包括:
业务请求获取模块,用于获取用户提交的业务请求指令;
流程数据获取模块,用于基于所述业务请求指令,获取与所述流程业务对应的所述流程实例数据和流程业务数据,所述流程实例数据基于流程名称、流程类型、流程状态、当前节点、参与人、节点数据、业务标识生成,所述流程业务数据基于业务请求人信息、业务请求原因、业务请求时间和业务关联数据生成;所述流程业务数据与所述流程实例数据基于所述业务标识绑定;
执行队列创建模块,用于将所述流程实例数据和所述流程业务数据转入协程,并创建用于缓存所述协程中的所述流程实例数据和所述流程业务数据的预备执行队列、正在执行队列、挂起执行队列和已执行完队列;
流程数据缓存模块,用于基于所述预备执行队列、所述正在执行队列、所述挂起执行队列和所述已执行完队列的缓存规则,缓存所述协程中的所述流程实例数据和所述流程业务数据;
流程数据处理模块,用于基于所述正在执行队列缓存后的所述协程中的所述流程实例数据和所述流程业务数据,通过所述协程处理所述业务请求指令对应的流程业务。
在一种可选的实施方式中,所述流程数据缓存模块,包括:
业务数据检索子模块,用于在已执行完队列中检索是否存在所述业务请求对应的所述流程实例数据和所述流程业务数据;
第一数据获取子模块,用于若在所述已执行完队列中检索到存在所述业务请求对应的所述流程实例数据和所述流程业务数据,从所述已执行完队列中获取所述业务请求对应的所述协程中的流程实例数据和所述流程业务数据;
第一数据缓存子模块,用于将所述协程中的所述流程实例数据和所述流程业务数据转入所述预备执行队列缓存;
第二数据缓存子模块,用于将所述协程中的流程实例数据和所述流程业务数据转入所述正在执行队列中缓存;
数据阻塞判断子模块,用于判断所述正在执行队列中缓存的所述流程实例数据和所述流程业务数据是否发生阻塞;
第三数据缓存子模块,用于若所述正在执行队列中缓存的所述流程实例数据和所述流程业务数据发生阻塞,则所述协程中的所述流程实例数据和所述流程业务数据转入挂起执行队列直到阻塞消除转入所述预备执行队列缓存;
第四数据缓存子模块,用于若所述正在执行队列中缓存的所述流程实例数据和所述流程业务数据没有发生阻塞,则继续转入所述正在执行队列缓存所述协程中的所述流程实例数据和所述流程业务数据。
在一种可选的实施方式中,该装置还包括:
第二数据获取子模块,用于若在所述已执行完队列中未检索到所述业务请求对应的所述流程实例数据和所述流程业务数据,则从状态机模型获取所述业务请求对应的所述流程实例数据和所述流程业务数据;
执行动作跳入子模块,用于跳入将所述协程中的流程实例数据和所述流程业务数据转入所述预备执行队列缓存在已执行完队列中检索是否存在所述业务请求对应的所述流程实例数据和所述流程业务数据的步骤继续执行。
根据第三方面,本发明实施例提供一种计算机设备,包括:
存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或第一方面任一实施方式中的流程业务数据处理方法。
根据第四方面,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行第一方面或第一方面任一实施方式的流程业务数据处理方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的流程业务数据处理方法的流程示意图;
图2是根据本发明实施例的另一流程业务数据处理方法的流程示意图;
图3是根据本发明实施例的再一基于不同队列执行数据存放的流程示意图;
图4是根据本发明实施例的又一基于不同队列执行数据存放的流程示意图;
图5是根据本发明实施例的流程业务数据处理装置的结构框图;
图6是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
Lua虚拟机的运行基于有限状态机(FSM)模型的流程业务引擎系统,而相关技术中的流程引擎业务系统的业务功能模块较为复杂、高度集成化不易改动,引入成本高,并且在流程数据处理过程中,实时将各类不同流程数据同时运行在内存中,导致流程业务引擎系统在数据处理中的运行内存占用空间增大,影响系统运行速率。
根据本发明实施例,提供了一种流程业务数据处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种流程业务数据处理方法,可用于移动终端,如手机、平板电脑等,图1是根据本发明实施例的流程业务数据处理方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,获取用户提交的业务请求指令。
具体地,例如:用户提交的流程业务请求指令可以是请假请求指令或上传证明文件或提交订单或账单报销的请求指令。
步骤S102,基于业务请求指令,获取与流程业务对应的流程实例数据和流程业务数据,流程实例数据基于流程名称、流程类型、流程状态、当前节点、参与人、节点数据、业务标识生成,流程业务数据基于业务请求人信息、业务请求原因、业务请求时间和业务关联数据生成,流程业务数据与流程实例数据基于业务标识绑定。
示例性地,流程实例数据是依赖流程预制数据,将流程业务文件与初始化信息注入状态机。流程实例数据中保存的是流程运行相关的信息,比如流程名称、类型、状态、当前节点、参与人、节点数据、业务ID等信息。依靠流程实例数据将流程状态机恢复到内存中运行,运行结束后又将流程实例持久化存储。例如:用户提交的流程业务请求指令为提交订单的流程业务请求,则可以获取该订单业务请求相关的名称、类型、状态、当前节点、参与人、节点数据、业务ID等信息。
示例性地,流程业务数据是实际流程需求中需要保存的信息,比如一个请假流程需要保存请假人、请假天数、请假原因、请假时间等与业务相关的信息。在流程实例与流程数据分离的模式中,依靠业务ID将流程实例与流程业务绑定,提高流程扩展性的同时也为业务数据的处理统计提供了基础。还有一个模式可以是流程数据融合业务数据,将业务数据保存在流程实例中,这种模式适用于一些简单的业务流程,无需单独的业务模型与接口,仅需编辑流程文件与预制数据就可以快速上线新的业务流程。
步骤S103,将流程实例数据和流程业务数据转入协程,并创建用于缓存协程中的流程实例数据和流程业务数据的预备执行队列、正在执行队列、挂起执行队列和已执行完队列。
通过创建四种不同队列,有利于有序管理流程业务数据。
步骤S104,基于预备执行队列、正在执行队列、挂起执行队列和已执行完队列的缓存规则,缓存协程中的流程实例数据和流程业务数据。
具体地,预备执行队列缓存等待协程中的流程实例数据和流程业务数据(CPU资源),正在执行队列缓存协程中的流程实例数据和流程业务数据,挂起执行队列缓存因为阻塞时间暂时挂起协程中的流程实例数据和流程业务数据,已执行完队列缓存已经执行完协程中的流程实例数据和流程业务数据。当调用操作流程接口时,创建一个协程运行流程状态机模型中的实例,根据获取的业务请求,将协程中的流程数据存入预备执行队列缓存,等待CPU资源,获取到CPU资源后转入正在执行队列,流程触发事件的动作中如存在阻塞则转入挂起执行队列,等待阻塞完成转入预备执行队列重新等待CPU资源,顺利执行后,协程中的流程实例数据和流程业务数据将转入已执行完队列,已执行完队列协程中的流程实例数据有参数控制自动消亡时间。创建流程对象时可先从已执行完队列中获取是否已存在流程实例数据,利用四个不同队列缓存协程中的流程实例数据和流程业务数据,不但提高CPU利用率,而且还保证了所有流程逻辑线性执行,已执行完队列还起到流程对象缓存作用,可以避免限定时间内从持久化数据中重复加载创建流程对象,而且超出自动消亡时间的协程将会销毁,减少资源的浪费加快了流程的执行速度。
步骤S105,基于正在执行队列缓存后协程中的流程实例数据和流程业务数据,通过协程处理业务请求指令对应的流程业务。
示例性地,当请求人审批请假流程通过时,流程实例数据和流程业务数据传入协程中,协程基于四个队列管理以确定何时可以执行协程,当传入的流程实例数据和流程业务数据处理请假流程时,处理的过程中就会涉及到流程实例和流程业务数据,处理完成后,这两种数据均会基于预设时间进行持久化存储。
在一种可选的实施方式中,如图2所示,步骤S104,基于预备执行队列、正在执行队列、挂起执行队列和已执行完队列的缓存规则,缓存协程中的流程实例数据和流程业务数据,
步骤S201,在已执行完队列中检索是否存在业务请求指令对应的流程实例数据和流程业务数据。
步骤S202,若在已执行完队列中检索到存在业务请求指令对应的流程实例数据和流程业务数据,从已执行完队列中获取业务请求对应的协程中的流程实例数据和流程业务数据。
具体地,优先从已执行完队列中检索与业务请求对应的流程实例数据和流程业务数据,进而有利于提高流程业务处理速度,并减少内存占用。
步骤S203,将协程中的流程实例数据和流程业务数据转入预备执行队列缓存。
步骤S204,将协程中的流程实例数据和流程业务数据转入正在执行队列中缓存。
步骤S205,判断正在执行队列中缓存的流程实例数据和流程业务数据是否发生阻塞。
步骤S206,若正在执行队列中缓存的流程实例数据和流程业务数据发生阻塞,则协程中的流程实例数据和流程业务数据转入挂起执行队列直到阻塞消除转入预备执行队列缓存。
步骤S207,若正在执行队列中缓存的流程实例数据和流程业务数据没有发生阻塞,则转入正在执行队列缓存协程中的流程实例数据和流程业务数据,等待协程处理业务请求指令对应的流程业务。
步骤S208,若在已执行完队列中未检索到业务请求指令对应的流程实例数据和流程业务数据,则从状态机模型获取业务请求指令对应的流程实例数据和流程业务数据。
步骤S209,跳入将协程中的流程实例数据和流程业务数据转入预备执行队列缓存在已执行完队列中检索是否存在业务请求指令对应的流程实例数据和流程业务数据的步骤继续执行。
本实施例中的流程业务数据处理方法,创建流程时通过流程预置数据与流程业务对象填所需数据落库存储,操作流程接口传入业务请求,根据已执行完队列中的流程数据决定是否需要从状态机模型加载流程数据。若需要从已执行完队列中检索到流程数据。由状态机模型加载流程文件中定义的状态节点完成流程的创建和初始化,触发事件执行动作完毕后,流程实例数据与流程业务数据分离入库持久化存储,两者之间通过业务ID关联。本实施例中的流程数据仅在执行时加载或执行完毕队列时存在于内存中,减少了内存占用,极大提高了可创建流程数量。
在一种可选的实施方式中,如图4所示,在上述在通过协程处理业务请求指令对应的流程业务的步骤S105之后还包括:
步骤S106,转入已执行完队列,并基于预设时间存储协程中的流程实例数据和流程业务数据。
具体地,步骤S106转入已执行完队列的情况,包括正在执行队列一直正常通过协程处理业务请求指令对应的流程业务转入已执行完队列和阻塞消除后转入预备执行队列缓存后再转入已执行完队列。
步骤S107,当超出预设时间,删除协程和协程中的流程实例数据和流程业务数据。
示例性地,预设时间可以为流程实例数据和流程业务数据协程的自动消亡时间。基于预设时间自动将不打算使用的协程数据销毁,减少资源的浪费并且加快了流程的执行速度。
通过预设时间持久化存储协程中的流程实例数据和流程业务数据,有利于后续新的业务请求出现时,从该已执行完队列直接调用,进而加快了数据缓存速度,并且减少了资源浪费。而当超出预设时间,将协程和协程中的流程实例数据删除,有利于减少内存占用。
综上,本实施例中的流程业务数据处理方法,利用了Lua协程和不同队列进行流程数据优化,避免了短时间内重复加载创建状态机流程实例,起到了一个缓存快速响应的作用。并且相对与采用多线程的方式来说,协程减少了线程切换的开销,并且协程更加轻量,在节省内存的同时还提高了CPU的利用率。
在一种可选的实施方式中,从状态机模型加载业务请求指令对应的流程实例数据和流程业务数据,包括:
基于加载状态机模型中的流程状态节点获取流程实例数据和流程业务数据。
基于状态机模型加载流程实例数据和流程业务数据,不但有利于正常处理业务请求指令对应的流程业务,而且流程仅在执行时加载,减少了内存占用,极大提高了可创建流程数量。
因此,本实施例中的流程业务数据处理方法,基于预备执行队列、正在执行队列、挂起执行队列和已执行完队列的缓存规则,缓存协程中的流程实例数据和流程业务数据,无需实时将各类不同流程业务数据同时运行在内存中,进而极大提高了流程业务的处理数量。
如图5所示,为流程业务数据基于预备执行队列、正在执行队列、挂起执行队列具体缓存流程数据的示意图。
在本实施例中还提供了一种流程业务数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种流程业务数据处理装置,如图6所示,包括:
业务请求获取模块61,用于获取用户提交的业务请求指令;
流程数据获取模块62,用于基于业务请求指令,获取与流程业务对应的流程实例数据和流程业务数据,流程实例数据基于流程名称、流程类型、流程状态、当前节点、参与人、节点数据、业务标识生成,流程业务数据基于业务请求人信息、业务请求原因、业务请求时间和业务关联数据生成;流程业务数据与流程实例数据基于业务标识绑定;
执行队列创建模块63,用于将流程实例数据和流程业务数据转入协程,并创建用于缓存协程中的流程实例数据和流程业务数据的预备执行队列、正在执行队列、挂起执行队列和已执行完队列;
流程数据缓存模块64,用于基于预备执行队列、正在执行队列、挂起执行队列和已执行完队列的缓存规则,缓存协程中的流程实例数据和流程业务数据;
流程数据处理模块65,用于基于正在执行队列缓存后的协程中的流程实例数据和流程业务数据,通过协程处理业务请求指令对应的流程业务。
在一种可选的实施方式中,执行队列创建模块63,包括:
业务数据检索子模块,用于在已执行完队列中检索是否存在业务请求对应的流程实例数据和流程业务数据;
第一数据获取子模块,用于若在已执行完队列中检索到存在业务请求对应的流程实例数据和流程业务数据,从已执行完队列中获取业务请求对应的协程中的流程实例数据和流程业务数据;
第一数据缓存子模块,用于将协程中的流程实例数据和流程业务数据转入预备执行队列缓存;
第二数据缓存子模块,用于将协程中的流程实例数据和流程业务数据转入正在执行队列中缓存;
数据阻塞判断子模块,用于判断正在执行队列中缓存的流程实例数据和流程业务数据是否发生阻塞;
第三数据缓存子模块,用于若正在执行队列中缓存的流程实例数据和流程业务数据发生阻塞,则协程中的流程实例数据和流程业务数据转入挂起执行队列直到阻塞消除转入预备执行队列缓存;
第四数据缓存子模块,用于若正在执行队列中缓存的流程实例数据和流程业务数据没有发生阻塞,则转入正在执行队列缓存协程中的流程实例数据和流程业务数据,等待协程处理业务请求指令对应的流程业务。
在一种可选的实施方式中,还包括:
第二数据获取子模块,用于若在已执行完队列中未检索到业务请求对应的流程实例数据和流程业务数据,则从状态机模型获取业务请求对应的流程实例数据和流程业务数据;
执行动作跳入子模块,用于跳入将协程中的流程实例数据和流程业务数据转入预备执行队列缓存在已执行完队列中检索是否存在业务请求对应的流程实例数据和流程业务数据的步骤继续执行。
在一种可选的实施方式中,还包括:
流程数据存储子模块,用于转入已执行完队列,并基于预设时间存储协程中的流程实例数据和流程业务数据;
流程数据删除子模块,用于当超出预设时间,删除协程和协程中的流程实例数据和流程业务数据。
在一种可选的实施方式中,从状态机模型加载业务请求指令对应的流程实例数据和流程业务数据,包括:
基于加载状态机模型中的流程状态节点获取流程实例数据和流程业务数据。
在一种可选的实施方式中,状态机模型包含多个流程状态节点,每个流程状态节点通过流程状态、流程事件和流程动作生成。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的流程业务数据处理装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述中的流程业务数据处理装置。
请参阅图6,图6是本发明可选实施例提供的一种计算机设备的结构示意图,如图6所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种流程业务数据处理方法,其特征在于,所述方法包括:
获取用户提交的业务请求指令;
基于所述业务请求指令,获取与所述流程业务对应的所述流程实例数据和流程业务数据,所述流程实例数据基于流程名称、流程类型、流程状态、当前节点、参与人、节点数据、业务标识生成,所述流程业务数据基于业务请求人信息、业务请求原因、业务请求时间和业务关联数据生成;所述流程业务数据与所述流程实例数据基于所述业务标识绑定;
将所述流程实例数据和所述流程业务数据转入协程,并创建用于缓存所述协程中的所述流程实例数据和所述流程业务数据的预备执行队列、正在执行队列、挂起执行队列和已执行完队列;
基于所述预备执行队列、所述正在执行队列、所述挂起执行队列和所述已执行完队列的缓存规则,缓存所述协程中的所述流程实例数据和所述流程业务数据;
基于所述正在执行队列缓存后的所述协程中的所述流程实例数据和所述流程业务数据,通过所述协程处理所述业务请求指令对应的流程业务。
2.根据权利要求1所述的方法,其特征在于,基于所述预备执行队列、所述正在执行队列、所述挂起执行队列和所述已执行完队列的缓存规则,缓存所述协程中的所述流程实例数据和所述流程业务数据,包括:
在已执行完队列中检索是否存在所述业务请求指令对应的所述流程实例数据和所述流程业务数据;
若在所述已执行完队列中检索到存在所述业务请求指令对应的所述流程实例数据和所述流程业务数据,从所述已执行完队列中获取所述业务请求对应的所述协程中的流程实例数据和所述流程业务数据;
将所述协程中的所述流程实例数据和所述流程业务数据转入所述预备执行队列缓存;
将所述协程中的流程实例数据和所述流程业务数据转入所述正在执行队列中缓存;
判断所述正在执行队列中缓存的所述流程实例数据和所述流程业务数据是否发生阻塞;
若所述正在执行队列中缓存的所述流程实例数据和所述流程业务数据发生阻塞,则所述协程中的所述流程实例数据和所述流程业务数据转入挂起执行队列直到阻塞消除转入所述预备执行队列缓存;
若所述正在执行队列中缓存的所述流程实例数据和所述流程业务数据没有发生阻塞,则转入所述正在执行队列缓存所述协程中的所述流程实例数据和所述流程业务数据,等待所述协程处理所述业务请求指令对应的流程业务。
3.根据权利要求2所述的方法,其特征在于,还包括:
若在所述已执行完队列中未检索到所述业务请求对应的所述流程实例数据和所述流程业务数据,则从状态机模型获取所述业务请求对应的所述流程实例数据和所述流程业务数据;
跳入将所述协程中的流程实例数据和所述流程业务数据转入所述预备执行队列缓存在已执行完队列中检索是否存在所述业务请求对应的所述流程实例数据和所述流程业务数据的步骤继续执行。
4.根据权利要求1所述的方法,其特征在于,在所述通过所述协程处理所述业务请求指令对应的流程业务的步骤之后还包括:
转入所述已执行完队列,并基于预设时间存储所述协程中的所述流程实例数据和所述流程业务数据;
当超出所述预设时间,删除所述协程和所述协程中的所述流程实例数据和所述流程业务数据。
5.根据权利要求3所述的方法,其特征在于,所述从状态机模型加载所述业务请求指令对应的所述流程实例数据和所述流程业务数据,包括:
基于加载所述状态机模型中的所述流程状态节点获取所述流程实例数据和所述流程业务数据。
6.一种流程业务数据处理装置,其特征在于,所述装置包括:
业务请求获取模块,用于获取用户提交的业务请求指令;
流程数据获取模块,用于基于所述业务请求指令,获取与所述流程业务对应的所述流程实例数据和流程业务数据,所述流程实例数据基于流程名称、流程类型、流程状态、当前节点、参与人、节点数据、业务标识生成,所述流程业务数据基于业务请求人信息、业务请求原因、业务请求时间和业务关联数据生成;所述流程业务数据与所述流程实例数据基于所述业务标识绑定;
执行队列创建模块,用于将所述流程实例数据和所述流程业务数据转入协程,并创建用于缓存所述协程中的所述流程实例数据和所述流程业务数据的预备执行队列、正在执行队列、挂起执行队列和已执行完队列;
流程数据缓存模块,用于基于所述预备执行队列、所述正在执行队列、所述挂起执行队列和所述已执行完队列的缓存规则,缓存所述协程中的所述流程实例数据和所述流程业务数据;
流程数据处理模块,用于基于所述正在执行队列缓存后的所述协程中的所述流程实例数据和所述流程业务数据,通过所述协程处理所述业务请求指令对应的流程业务。
7.根据权利要求6所述的装置,其特征在于,所述流程数据缓存模块,包括:
业务数据检索子模块,用于在已执行完队列中检索是否存在所述业务请求对应的所述流程实例数据和所述流程业务数据;
第一数据获取子模块,用于若在所述已执行完队列中检索到存在所述业务请求对应的所述流程实例数据和所述流程业务数据,从所述已执行完队列中获取所述业务请求对应的所述协程中的流程实例数据和所述流程业务数据;
第一数据缓存子模块,用于将所述协程中的所述流程实例数据和所述流程业务数据转入所述预备执行队列缓存;
第二数据缓存子模块,用于将所述协程中的流程实例数据和所述流程业务数据转入所述正在执行队列中缓存;
数据阻塞判断子模块,用于判断所述正在执行队列中缓存的所述流程实例数据和所述流程业务数据是否发生阻塞;
第三数据缓存子模块,用于若所述正在执行队列中缓存的所述流程实例数据和所述流程业务数据发生阻塞,则所述协程中的所述流程实例数据和所述流程业务数据转入挂起执行队列直到阻塞消除转入所述预备执行队列缓存;
第四数据缓存子模块,用于若所述正在执行队列中缓存的所述流程实例数据和所述流程业务数据没有发生阻塞,则继续转入所述正在执行队列缓存所述协程中的所述流程实例数据和所述流程业务数据。
8.根据权利要求7所述的装置,其特征在于,还包括:
第二数据获取子模块,用于若在所述已执行完队列中未检索到所述业务请求对应的所述流程实例数据和所述流程业务数据,则从状态机模型获取所述业务请求对应的所述流程实例数据和所述流程业务数据;
执行动作跳入子模块,用于跳入将所述协程中的流程实例数据和所述流程业务数据转入所述预备执行队列缓存在已执行完队列中检索是否存在所述业务请求对应的所述流程实例数据和所述流程业务数据的步骤继续执行。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的流程业务数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的流程业务数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310953208.4A CN116976815A (zh) | 2023-07-31 | 2023-07-31 | 流程业务数据处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310953208.4A CN116976815A (zh) | 2023-07-31 | 2023-07-31 | 流程业务数据处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116976815A true CN116976815A (zh) | 2023-10-31 |
Family
ID=88481075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310953208.4A Pending CN116976815A (zh) | 2023-07-31 | 2023-07-31 | 流程业务数据处理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116976815A (zh) |
-
2023
- 2023-07-31 CN CN202310953208.4A patent/CN116976815A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190163364A1 (en) | System and method for tcp offload for nvme over tcp-ip | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
CN113419824A (zh) | 数据处理方法、装置、系统及计算机存储介质 | |
WO2018054170A1 (zh) | 浏览器资源预拉取方法、终端及存储介质 | |
US10002023B2 (en) | Method and apparatus for managing one or more tasks of a many-core system using one or more task descriptor entries | |
CN113010818A (zh) | 访问限流方法、装置、电子设备及存储介质 | |
JP2833633B2 (ja) | データ処理システム及び待ち行列管理方法 | |
CN113765980A (zh) | 一种限流方法、装置、系统、服务器和存储介质 | |
CN111309805B (zh) | 数据库的数据读写方法及装置 | |
CN115185679A (zh) | 人工智能算法的任务处理方法、装置、服务器及存储介质 | |
JP2022531601A (ja) | マルチコア・プロセッサの複数のデータ要求の実行 | |
CN110162395B (zh) | 一种内存分配的方法及装置 | |
CN108255853B (zh) | 一种插件式的请求异步处理方法以及系统 | |
CN116976815A (zh) | 流程业务数据处理方法、装置、计算机设备及存储介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN108062224B (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
CN111126604A (zh) | 模型训练方法、装置、服务器及存储介质 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN113779021B (zh) | 数据处理方法、装置、计算机系统及可读存储介质 | |
CN111045787B (zh) | 一种快速继续实验方法及系统 | |
EP3764238A1 (en) | Processing circuit, information processing apparatus, and information processing method | |
CN112688980B (zh) | 资源分发方法、装置、计算机设备 | |
US11003578B2 (en) | Method and system for parallel mark processing | |
CN100538665C (zh) | 多处理器系统、系统板和高速缓存替换请求处理方法 | |
CN110955386A (zh) | 管理向微处理器提供诸如指令的信息的方法和对应的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |