CN111290868A - 任务处理方法、装置和系统以及流程引擎 - Google Patents
任务处理方法、装置和系统以及流程引擎 Download PDFInfo
- Publication number
- CN111290868A CN111290868A CN202010135355.7A CN202010135355A CN111290868A CN 111290868 A CN111290868 A CN 111290868A CN 202010135355 A CN202010135355 A CN 202010135355A CN 111290868 A CN111290868 A CN 111290868A
- Authority
- CN
- China
- Prior art keywords
- task
- subtask
- engine
- flow
- sub
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 212
- 230000008569 process Effects 0.000 claims abstract description 159
- 238000012545 processing Methods 0.000 claims abstract description 129
- 238000003860 storage Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005111 flow chemistry technique Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- 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/542—Event management; Broadcasting; Multicasting; Notifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务处理方法、装置和系统以及流程引擎,涉及信息技术领域。任务处理方法包括:流程引擎通过获取的第一线程,确定对获取的第一子任务的处理结果;流程引擎通过第一线程,将第一子任务的处理结果返回给第一子任务对应的任务系统,并结束第一线程;流程引擎通过获取的第二线程,生成第一子任务所属的任务流程中的下一个任务、作为第二子任务;流程引擎通过第二线程,将第二子任务推送给第二子任务对应的任务系统进行处理。本发明能够提高任务系统的反馈效率。并且,这种异步执行第二子任务生成的方式,也提高了系统的处理效率。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种任务处理方法、装置和系统以及流程引擎。
背景技术
在工作流技术中,流程任务处理为流程引擎的核心功能。在相关技术中,在用户提交任务后,流程引擎利用一个线程处理用户提交的当前节点任务、并计算下一个节点的任务。当下一个节点任务计算完毕后,向用户返回提交任务的结果。然后,该流程引擎再继续处理下一个节点的任务。
发明内容
发明人经过分析后发现,在某些情况下,用户只关心当前任务的处理结果,不关心下一节点的任务计算结果。因而相关技术的这种方式会影响任务处理结果的反馈时间。因此,用户需要长时间等待在任务提交界面,影响业务处理的效率和交互的时长。甚至会导致超时以及交易不一致等问题。
本发明实施例所要解决的一个技术问题是:如何提高任务处理的效率。
根据本发明一些实施例的第一个方面,提供一种任务处理方法,包括:流程引擎通过获取的第一线程,确定对获取的第一子任务的处理结果;流程引擎通过第一线程,将第一子任务的处理结果返回给第一子任务对应的任务系统,并结束第一线程;流程引擎通过获取的第二线程,生成第一子任务所属的任务流程中的下一个任务、作为第二子任务;流程引擎通过第二线程,将第二子任务推送给第二子任务对应的任务系统进行处理。
在一些实施例中,流程引擎包括多个分布式的子流程引擎,多个分布式的子流程引擎通过流程数据库或者消息队列交换数据。
在一些实施例中,子流程引擎通过第二线程,将第二子任务推送给第二子任务对应的任务系统,以便第二子任务对应的任务系统利用其他子流程引擎对第二子任务进行处理。
在一些实施例中,流程引擎包括异步处理器,并且,流程引擎中的异步处理器通过获取的第二线程,生成第一子任务所属的任务流程中的下一个任务、作为第二子任务。
在一些实施例中,流程引擎包括多个分布式的子流程引擎;子流程引擎通过获取的第二线程,向流程数据库提交第二子任务的标识,以生成多个第二子任务;任务处理方法还包括:多个子流程引擎中的每一个中的异步处理器从流程数据库中获取第二子任务,并将第二子任务推送给相应的任务系统进行处理。
在一些实施例中,流程引擎还包括事件调度器和任务推送监听器;流程引擎通过第二线程,将第二子任务推送给第二子任务对应的任务系统进行处理包括:流程引擎中的事件调度器响应于监听到第二子任务生成的事件,将第二子任务生成的事件转发给流程引擎中的任务推送监听器;以及流程引擎中的任务推送监听器响应于获取到第二子任务生成的事件,将第二子任务推送给第二子任务对应的任务系统。
在一些实施例中,流程引擎还包括事件调度器和流程结果监听器;任务处理方法还包括:流程引擎中的事件调度器响应于监听到来自任务系统的任务所在的流程结束的事件,将流程结束的事件转发给流程引擎中的流程结果监听器;流程引擎中的流程结果监听器将流程结束的事件推送到启动流程的任务系统。
在一些实施例中,流程引擎通过获取的第一线程,确定对获取的第一子任务的处理结果包括:流程引擎通过获取的第一线程,向流程数据库提交第一子任务的标识,以便流程数据库根据第一子任务的标识查找第一子任务的处理逻辑;流程引擎执行流程数据库返回的第一子任务的处理逻辑,并确定对第一子任务的处理结果。
在一些实施例中,流程引擎通过获取的第二线程,生成第一子任务所属的任务流程中的下一个任务、作为第二子任务包括:流程引擎通过获取的第二线程向流程数据库提交第二子任务的标识,以便流程数据库向用于存储已生成任务的存储区域中记录第二子任务,其中,第二子任务的标识是通过第一子任务的标识以及流程数据库中的流程定义文件确定的。
根据本发明一些实施例的第二个方面,提供一种流程引擎,包括:任务处理模块,被配置为通过获取的第一线程,确定对获取的第一子任务的处理结果;处理结果返回模块,被配置为通过第一线程,将第一子任务的处理结果返回给第一子任务对应的任务系统,并结束第一线程;任务生成模块,被配置为通过获取的第二线程,生成第一子任务所属的任务流程中的下一个任务、作为第二子任务;任务推送模块,被配置为通过第二线程,将第二子任务推送给第二子任务对应的任务系统进行处理。
在一些实施例中,流程引擎包括多个分布式的子流程引擎,每个子流程引擎包括任务处理模块、处理结果返回模块、任务生成模块和任务推送模块;多个分布式的子流程引擎通过流程数据库或者消息队列交换数据。
在一些实施例中,子流程引擎的任务推送模块进一步被配置为将第二子任务推送给第二子任务对应的任务系统,以便第二子任务对应的任务系统利用其他子流程引擎对第二子任务进行处理。
在一些实施例中,流程引擎还包括异步处理器,任务生成模块位于异步处理器中。
在一些实施例中,流程引擎包括多个分布式的子流程引擎,每个子流程引擎包括任务处理模块、处理结果返回模块、任务推送模块以及异步处理器,异步处理器包括任务生成模块;子流程引擎的异步处理器进一步被配置为通过获取的第二线程,向流程数据库提交第二子任务的标识,以生成多个第二子任务;以及,从流程数据库中获取任务,并将获取的任务推送给相应的任务系统进行处理。
在一些实施例中,流程引擎还包括事件调度器和任务推送监听器,任务推送模块位于任务推送监听器中;事件调度器被配置为响应于监听到第二子任务生成的事件,将第二子任务生成的事件转发给任务推送监听器;以及任务推送监听器被配置为响应于获取到第二子任务生成的事件,将第二子任务推送给第二子任务对应的任务系统。
在一些实施例中,流程引擎还包括事件调度器和流程结果监听器;事件调度器被配置为响应于监听到来自任务系统的任务所在的流程结束的事件,将流程结束的事件转发给流程引擎中的流程结果监听器;流程结果监听器被配置为将流程结束的事件推送到启动流程的任务系统。
在一些实施例中,任务处理模块进一步被配置为通过获取的第一线程,向流程数据库提交第一子任务的标识,以便流程数据库根据第一子任务的标识查找第一子任务的处理逻辑;执行流程数据库返回的第一子任务的处理逻辑,并确定对第一子任务的处理结果。
在一些实施例中,任务生成模块被配置为通过获取的第二线程向流程数据库提交第二子任务的标识,以便流程数据库向用于存储已生成任务的存储区域中记录第二子任务,其中,第二子任务的标识是通过第一子任务的标识以及流程数据库中的流程定义文件确定的。
根据本发明一些实施例的第三个方面,提供一种任务处理系统,包括:前述任意一种流程引擎;以及线程池,用于向所述流程引擎提供线程。
在一些实施例中,任务处理系统还包括:流程数据库,用于存储流程定义文件、流程处理逻辑以及已生成的子任务。
根据本发明一些实施例的第四个方面,提供一种任务处理装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述任意一种任务处理方法。
根据本发明一些实施例的第五个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任意一种任务处理方法。
上述发明中的一些实施例具有如下优点或有益效果:本发明的流程引擎可以将获取的子任务的处理和下一个子任务的生成分别由两个线程处理。从而,关注第一子任务的任务系统可以无需等待第二子任务的生成,而是能够更快地获得到需要的处理结果。因此,能够提高任务系统的反馈效率。并且,这种异步执行第二子任务生成的方式,也提高了系统的处理效率。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明一些实施例的任务处理方法的流程示意图。
图2示出了根据本发明一些实施例的第二子任务生成方法的流程示意图。
图3示出了根据本发明一些实施例的分布式流程引擎并行推送任务的流程示意图。
图4示出了根据本发明一些实施例的流程引擎的结构示意图。
图5示出了根据本发明另一些实施例的流程引擎的结构示意图。
图6示出了根据本发明一些实施例的任务处理系统的结构示意图。
图7示出了根据本发明另一些实施例的任务处理装置的结构示意图。
图8示出了根据本发明又一些实施例的任务处理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
在本发明的一些实施例中,流程引擎用于处理流程相关的计算逻辑,以将一个完整的流程所涉及的各个任务系统连接起来。任务系统可以是用于发起流程的任务提交系统,也可以是进行中间处理的任务处理系统。例如,用户通过任务提交系统提交任务,流程引擎获取任务后进行任务处理,在处理过程中若涉及到其他任务处理系统,则将相应的信息发送给任务处理系统。
一个任务流程往往涉及多个子任务。例如,若将用户的贷款申请业务是为一个任务流程,则该流程所包括的提交用户请求、贷款审批、执行放款中的每个步骤都可以视为一个子任务。下面参考图1描述本发明任务处理方法的实施例。
图1示出了根据本发明一些实施例的任务处理方法的流程示意图。如图1所示,该实施例的任务处理方法包括步骤S102~S108。
在步骤S102中,流程引擎通过获取的第一线程,确定对获取的第一子任务的处理结果。
在一些实施例中,流程引擎可以从任务系统中获得任务的信息,例如任务的标识、任务涉及的参数值等等。流程引擎可以直接获得第一子任务的信息,也可以获得第一子任务所属任务流程的信息、然后再进一步查询当前进行到哪一个子任务。
在一些实施例中,对第一子任务的处理可以是提交处理。例如,流程引擎通过获取的第一线程将第一子任务的信息提交到数据库中进行记录,并获得数据库返回的已提交的处理结果。
在一些实施例中,流程引擎通过获取的第一线程,向流程数据库提交第一子任务的标识;流程引擎执行流程数据库返回的对第一子任务的处理逻辑,确定对第一子任务的处理结果。
在一些实施例中,流程引擎可以利用变量、队列等方式传递线程所需要的计算数据,以便线程进行计算。
在步骤S104中,流程引擎通过第一线程,将第一子任务的处理结果返回给第一子任务对应的任务系统,并结束第一线程。从而,在第一子任务处理完毕后,任务系统侧的用户即可获得处理结果。
在步骤S106中,流程引擎通过获取的第二线程,生成第一子任务所属的任务流程中的下一个任务、作为第二子任务。
在本发明的实施例中,“生成任务”表示将任务置于可处理的状态。在一些实施例中,流程引擎通过获取的第二线程向流程数据库提交第二子任务的标识,以便流程数据库向用于存储已生成任务的存储区域中记录第二子任务,其中,第二子任务的标识是通过第一子任务的标识以及流程数据库中的流程定义文件确定的。从而,当其他任务系统继续处理第二子任务时,可以在流程数据库中查询到相应的信息,并基于该信息继续进行处理。
在步骤S108中,流程引擎通过第二线程,将第二子任务推送给第二子任务对应的任务系统进行处理。
通过上述实施例的方法,可以将第一子任务的处理和第二子任务的生成分别由两个线程处理。从而,关注第一子任务的任务系统可以无需等待第二子任务的生成,而是能够更快地获得到需要的处理结果。因此,能够提高任务系统的反馈效率。并且,这种异步执行第二子任务生成的方式,也提高了系统的处理效率。
此外,本申请利用流程引擎主动推送生成的第二子任务。从而,相较于传统的登记数据库、由任务系统主动轮询的处理方式,本发明可以令任务系统更高效地获得任务,并且能够节约计算资源。
在一些实施例中,本发明提供的流程引擎可以包括异步处理器,以实现第二子任务的异步生成。下参考图2描述本发明第二子任务生成方法的实施例。
图2示出了根据本发明一些实施例的第二子任务生成方法的流程示意图。如图2所示,该实施例的任务处理方法包括步骤S202~S212。
在步骤S202中,流程引擎获取任务系统1提交的第一子任务。
在步骤S204中,流程引擎获取第一线程。例如,可以从线程池获取。
在步骤S206中,流程引擎通过获取的第一线程确定对获取的第一子任务的处理结果。例如,流程引擎与流程数据库进行交互以获得处理结果。
在步骤S208中,流程引擎通过第一线程,将第一子任务的处理结果返回给第一子任务对应的任务系统,并结束第一线程。
在步骤S210中,流程引擎中的异步处理器获取第二线程。例如,可以从线程池获取。
在步骤S212中,异步处理器通过第二线程生成第一子任务所属的任务流程中的下一个任务、作为第二子任务。
从而,下一个子任务的生成由分布式异步处理器新开启一个线程完成,实现了任务流程的异步处理。
在一些实施例中,异步处理器可以设置任务获取间隔时间、数据锁时间、任务获取笔数,还可以进行加锁处理。从而,可以提高任务处理的效率以及被处理数据的一致性。
在一些实施例中,流程引擎还可以包括事件调度器和任务推送监听器,以完成第二子任务的推送。在一些实施例中,任务处理方法还可以包括步骤S214~S216。
在步骤S214中,流程引擎中的事件调度器响应于监听到第二子任务生成的事件,将第二子任务生成的事件转发给流程引擎中的任务推送监听器。
事件调度器用于监听流程引擎的事件。当事件创建时,将事件转发至相应的模块进行处理。在一些实施例中,事件调度器支持全局事件及特定类型事件调度,例如包括实例创建、流程实例初始化、定时调度、定时调度执行、活动节点开始、活动节点结束、活动节点取消、变量创建、变量删除等等。
在一些实施例中,事件调度器可以通过队列将事件转发给相应的模块进行处理。
在步骤S216中,流程引擎中的任务推送监听器响应于获取到第二子任务生成的事件,将第二子任务推送给第二子任务对应的任务系统。图2中以任务系统2表示第二子任务对应的任务系统。
从而,可以利用事件监听机制,高效地实现已生成的任务的推送过程。
在一些实施例中,流程引擎还可以包括流程结果监听器。一个任务流程往往要经过多个系统的处理、以完成多个子任务。流程结果监听器可以监控最后一个子任务的完成。例如,任务处理方法还可以包括步骤S218~S220。
在步骤S218中,流程引擎中的事件调度器响应于监听到来自任务系统的任务所在的流程结束的事件,将流程结束的事件转发给流程引擎中的流程结果监听器。
在步骤S220中,流程引擎中的流程结果监听器将流程结束的事件推送到启动流程的任务系统。
从而,可以高效地向流程发起的系统通知任务流程的结果,实现了任务流程的可监控,使得任务管理的效率得到了提高。此外,流程结果监听器还可以支持对任务流程的启动、挂起、暂停、运行等事件的监听,以实现对任务流程的状态的进一步有效监控。
并且,上述实施例提供的基于事件推送和通知的方式,在涉及跨系统的任务处理中会大大提高处理效率。
本发明提供的流程引擎可以是分布式的结构,即,流程引擎包括多个分布式的子流程引擎。子流程引擎通过第二线程,将第二子任务推送给第二子任务对应的任务系统,以便第二子任务对应的任务系统利用其他子流程引擎对第二子任务进行处理。从而,流程任务中的各个子任务可以由多个不同的子流程引擎进行处理,提高了处理效率。根据需要,每个子流程引擎都可以设置有异步处理器、事件调度器、任务推送监听器、流程结果监听器等模块。
在一些实施例中,还可以由一个子流程引擎生成任务,多个子流程引擎的异步处理器推送任务。子流程引擎通过获取的第二线程,向流程数据库提交第二子任务的标识,以生成多个第二子任务;多个子流程引擎中的每一个中的异步处理器从流程数据库中获取第二子任务,并将第二子任务推送给相应的任务系统进行处理。
图3示出了根据本发明一些实施例的分布式流程引擎并行推送任务的流程示意图。如图3所示,该实施例的方法包括步骤S302以及S3041~S3044。
在步骤S302中,子流程引擎A生成第二子任务,并将其提交到数据库中。在步骤S3041~S3044中,子流程引擎A、B、C、N利用异步处理器从流程数据库中获取任务后,将生成的任务推送给各自对应的系统。
例如,在OA会签场景中,流程中某个节点需要多个系统或用户完成审批,再进行到下一个节点。在这种情况下,分布式的流程引擎中的一个子流程引擎可以生成多个审批任务,并存储到流程数据库中。然后由多个子流程引擎获取这些生成的审批任务、并将获得的审批任务推送到相应的系统中。从而,可以降低单一子流程引擎的处理压力,提高任务处理效率。
并且,如果某个子流程引擎发生故障,其他子流程引擎可以继续从数据库中获取第二子任务并进行处理,提高了系统的容错性。
下面参考图4描述本发明流程引擎的实施例。
图4示出了根据本发明一些实施例的流程引擎的结构示意图。如图4所示,该实施例的流程引擎40包括:任务处理模块4100,被配置为通过获取的第一线程,确定对获取的第一子任务的处理结果;处理结果返回模块4200,被配置为通过第一线程,将第一子任务的处理结果返回给第一子任务对应的任务系统,并结束第一线程;任务生成模块4300,被配置为通过获取的第二线程,生成第一子任务所属的任务流程中的下一个任务、作为第二子任务;任务推送模块4400,被配置为通过第二线程,将第二子任务推送给第二子任务对应的任务系统进行处理。
在一些实施例中,流程引擎还包括异步处理器430,任务生成模块4300位于异步处理器430中。
在一些实施例中,流程引擎40还包括事件调度器450和任务推送监听器440,任务推送模块4400位于任务推送监听器440中;事件调度器450被配置为响应于监听到第二子任务生成的事件,将第二子任务生成的事件转发给任务推送监听器440;任务推送监听器440被配置为响应于获取到第二子任务生成的事件,将第二子任务推送给第二子任务对应的任务系统。
在一些实施例中,流程引擎40还包括事件调度器450和流程结果监听器460;事件调度器450被配置为响应于监听到来自任务系统的任务所在的流程结束的事件,将流程结束的事件转发给流程引擎中的流程结果监听器460;流程结果监听器460被配置为将流程结束的事件推送到启动流程的任务系统。
在一些实施例中,任务处理模块4100进一步被配置为通过获取的第一线程,向流程数据库提交第一子任务的标识,以便流程数据库根据第一子任务的标识查找第一子任务的处理逻辑;执行流程数据库返回的第一子任务的处理逻辑,并确定对第一子任务的处理结果。
在一些实施例中,任务生成模块4300被配置为通过获取的第二线程向流程数据库提交第二子任务的标识,以便流程数据库向用于存储已生成任务的存储区域中记录第二子任务,其中,第二子任务的标识是通过第一子任务的标识以及流程数据库中的流程定义文件确定的。
下面参考图5描述本发明包括多个分布式的子流程引擎的流程引擎的实施例。
图5示出了根据本发明另一些实施例的流程引擎的结构示意图。如图5所示,该实施例的流程引擎50包括多个分布式的子流程引擎500,每个子流程引擎500包括任务处理模块5100、处理结果返回模块5200、任务生成模块5300和任务推送模块5400;多个分布式的子流程引擎400通过流程数据库或者消息队列交换数据。
在一些实施例中,子流程引擎500的任务推送模块5400进一步被配置为将第二子任务推送给第二子任务对应的任务系统,以便第二子任务对应的任务系统利用其他子流程引擎对第二子任务进行处理。
在一些实施例中,子流程引擎500还包括异步处理器530,异步处理器530包括任务生成模块5300;子流程引擎500的异步处理器5300进一步被配置为通过获取的第二线程,向流程数据库提交第二子任务的标识,以生成多个第二子任务;以及,从流程数据库中获取任务,并将获取的任务推送给相应的任务系统进行处理。
此外,子流程引擎500中也可以设置有任务推送监听器540、事件调度器550、流程结果监听器560,这些调度器和监听器的功能可以参考图4实施例中的响应装置,这里不再赘述。
图6示出了根据本发明一些实施例的任务处理系统的结构示意图。如图6所示,该实施例的任务处理系统60包括流程引擎61和线程池62。线程池62用于向流程引擎61提供线程。
在一些实施例中,任务处理系统60还包括流程数据库63,用于存储流程定义文件、流程处理逻辑以及已生成的子任务。
图7示出了根据本发明另一些实施例的任务处理装置的结构示意图。如图7所示,该实施例的任务处理装置70包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行前述任意一个实施例中的任务处理方法。
其中,存储器710例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图8示出了根据本发明又一些实施例的任务处理装置的结构示意图。如图8所示,该实施例的任务处理装置80包括:存储器810以及处理器820,还可以包括输入输出接口830、网络接口840、存储接口850等。这些接口830,840,850以及存储器810和处理器820之间例如可以通过总线860连接。其中,输入输出接口830为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口840为各种联网设备提供连接接口。存储接口850为SD卡、U盘等外置存储设备提供连接接口。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种任务处理方法。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种任务处理方法,包括:
流程引擎通过获取的第一线程,确定对获取的第一子任务的处理结果;
所述流程引擎通过所述第一线程,将所述第一子任务的处理结果返回给所述第一子任务对应的任务系统,并结束第一线程;
所述流程引擎通过获取的第二线程,生成所述第一子任务所属的任务流程中的下一个任务、作为第二子任务;
所述流程引擎通过所述第二线程,将所述第二子任务推送给所述第二子任务对应的任务系统进行处理。
2.根据权利要求1所述的任务处理方法,其中,所述流程引擎包括多个分布式的子流程引擎,所述多个分布式的子流程引擎通过流程数据库或者消息队列交换数据。
3.根据权利要求1所述的任务处理方法,其中,所述子流程引擎通过所述第二线程,将所述第二子任务推送给所述第二子任务对应的任务系统,以便所述第二子任务对应的任务系统利用其他子流程引擎对所述第二子任务进行处理。
4.根据权利要求1所述的任务处理方法,其中,所述流程引擎包括异步处理器,并且,所述流程引擎中的异步处理器通过获取的第二线程,生成所述第一子任务所属的任务流程中的下一个任务、作为第二子任务。
5.根据权利要求4所述的任务处理方法,其中,所述流程引擎包括多个分布式的子流程引擎;
子流程引擎通过获取的第二线程,向流程数据库提交所述第二子任务的标识,以生成多个第二子任务;
所述任务处理方法还包括:
多个子流程引擎中的每一个中的异步处理器从所述流程数据库中获取所述第二子任务,并将所述第二子任务推送给相应的任务系统进行处理。
6.根据权利要求4所述的任务处理方法,其中,所述流程引擎还包括事件调度器和任务推送监听器;
所述流程引擎通过所述第二线程,将所述第二子任务推送给所述第二子任务对应的任务系统进行处理包括:
所述流程引擎中的事件调度器响应于监听到第二子任务生成的事件,将所述第二子任务生成的事件转发给流程引擎中的任务推送监听器;以及
所述流程引擎中的任务推送监听器响应于获取到第二子任务生成的事件,将所述第二子任务推送给所述第二子任务对应的任务系统。
7.根据权利要求1或4所述的任务处理方法,其中,所述流程引擎还包括事件调度器和流程结果监听器;
所述任务处理方法还包括:
所述流程引擎中的事件调度器响应于监听到所述来自任务系统的任务所在的流程结束的事件,将所述流程结束的事件转发给流程引擎中的流程结果监听器;
所述流程引擎中的流程结果监听器将所述流程结束的事件推送到启动所述流程的任务系统。
8.根据权利要求1所述的任务处理方法,其中,所述流程引擎通过获取的第一线程,确定对获取的第一子任务的处理结果包括:
所述流程引擎通过获取的第一线程,向流程数据库提交所述第一子任务的标识,以便流程数据库根据所述第一子任务的标识查找所述第一子任务的处理逻辑;
所述流程引擎执行所述流程数据库返回的所述第一子任务的处理逻辑,并确定对所述第一子任务的处理结果。
9.根据权利要求1所述的任务处理方法,其中,所述流程引擎通过获取的第二线程,生成所述第一子任务所属的任务流程中的下一个任务、作为第二子任务包括:
流程引擎通过获取的第二线程向流程数据库提交所述第二子任务的标识,以便所述流程数据库向用于存储已生成任务的存储区域中记录所述第二子任务,其中,所述第二子任务的标识是通过第一子任务的标识以及流程数据库中的流程定义文件确定的。
10.一种流程引擎,包括:
任务处理模块,被配置为通过获取的第一线程,确定对获取的第一子任务的处理结果;
处理结果返回模块,被配置为通过所述第一线程,将所述第一子任务的处理结果返回给所述第一子任务对应的任务系统,并结束第一线程;
任务生成模块,被配置为通过获取的第二线程,生成所述第一子任务所属的任务流程中的下一个任务、作为第二子任务;
任务推送模块,被配置为通过所述第二线程,将所述第二子任务推送给所述第二子任务对应的任务系统进行处理。
11.根据权利要求10所述的流程引擎,其中,所述流程引擎包括多个分布式的子流程引擎,每个子流程引擎包括所述任务处理模块、所述处理结果返回模块、所述任务生成模块和所述任务推送模块;
所述多个分布式的子流程引擎通过流程数据库或者消息队列交换数据。
12.根据权利要求10所述的流程引擎,其中,所述子流程引擎的任务推送模块进一步被配置为将所述第二子任务推送给所述第二子任务对应的任务系统,以便所述第二子任务对应的任务系统利用其他子流程引擎对所述第二子任务进行处理。
13.根据权利要求10所述的流程引擎,其中,所述流程引擎还包括异步处理器,所述任务生成模块位于异步处理器中。
14.根据权利要求13所述的流程引擎,其中,所述流程引擎包括多个分布式的子流程引擎,每个子流程引擎包括所述任务处理模块、所述处理结果返回模块、所述任务推送模块以及异步处理器,所述异步处理器包括所述任务生成模块;
所述子流程引擎的异步处理器进一步被配置为通过获取的第二线程,向流程数据库提交所述第二子任务的标识,以生成多个第二子任务;以及,从所述流程数据库中获取任务,并将获取的任务推送给相应的任务系统进行处理。
15.根据权利要求13所述的流程引擎,其中,所述流程引擎还包括事件调度器和任务推送监听器,所述任务推送模块位于所述任务推送监听器中;
所述事件调度器被配置为响应于监听到第二子任务生成的事件,将所述第二子任务生成的事件转发给所述任务推送监听器;以及
所述任务推送监听器被配置为响应于获取到第二子任务生成的事件,将所述第二子任务推送给所述第二子任务对应的任务系统。
16.根据权利要求10或13所述的流程引擎,其中,所述流程引擎还包括事件调度器和流程结果监听器;
所述事件调度器被配置为响应于监听到所述来自任务系统的任务所在的流程结束的事件,将所述流程结束的事件转发给流程引擎中的流程结果监听器;
所述流程结果监听器被配置为将所述流程结束的事件推送到启动所述流程的任务系统。
17.根据权利要求10所述的流程引擎,其中,所述任务处理模块进一步被配置为通过获取的第一线程,向流程数据库提交所述第一子任务的标识,以便流程数据库根据所述第一子任务的标识查找所述第一子任务的处理逻辑;执行所述流程数据库返回的所述第一子任务的处理逻辑,并确定对所述第一子任务的处理结果。
18.根据权利要求10所述的流程引擎,其中,所述任务生成模块被配置为通过获取的第二线程向流程数据库提交所述第二子任务的标识,以便所述流程数据库向用于存储已生成任务的存储区域中记录所述第二子任务,其中,所述第二子任务的标识是通过第一子任务的标识以及流程数据库中的流程定义文件确定的。
19.一种任务处理系统,包括:
权利要求10~18中任一项所述的流程引擎;以及
线程池,用于向所述流程引擎提供线程。
20.根据权利要求19所述的任务处理系统,还包括:
流程数据库,用于存储流程定义文件、流程处理逻辑以及已生成的子任务。
21.一种任务处理装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如权利要求1~9中任一项所述的任务处理方法。
22.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1~9中任一项所述的任务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010135355.7A CN111290868B (zh) | 2020-03-02 | 2020-03-02 | 任务处理方法、装置和系统以及流程引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010135355.7A CN111290868B (zh) | 2020-03-02 | 2020-03-02 | 任务处理方法、装置和系统以及流程引擎 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111290868A true CN111290868A (zh) | 2020-06-16 |
CN111290868B CN111290868B (zh) | 2024-03-15 |
Family
ID=71026976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010135355.7A Active CN111290868B (zh) | 2020-03-02 | 2020-03-02 | 任务处理方法、装置和系统以及流程引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290868B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568731A (zh) * | 2021-09-24 | 2021-10-29 | 苏州浪潮智能科技有限公司 | 一种任务调度方法、芯片以及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231199A (zh) * | 2011-06-27 | 2011-11-02 | 中国建设银行股份有限公司 | 一种交易信息异步处理的方法及装置 |
CN103593236A (zh) * | 2013-11-14 | 2014-02-19 | 华为技术有限公司 | 一种业务流程调度的计算机设备、方法和装置 |
CN106603708A (zh) * | 2016-12-30 | 2017-04-26 | 中国建设银行股份有限公司 | 一种业务处理方法及装置 |
CN107944773A (zh) * | 2017-12-29 | 2018-04-20 | 咪咕文化科技有限公司 | 一种业务流程控制方法、装置及存储介质 |
US20180239636A1 (en) * | 2017-02-22 | 2018-08-23 | Nutanix, Inc. | Task execution framework using idempotent subtasks |
CN109299946A (zh) * | 2018-07-27 | 2019-02-01 | 阿里巴巴集团控股有限公司 | 一种支付流程的处理方法和装置 |
CN110377413A (zh) * | 2019-07-24 | 2019-10-25 | 上海金融期货信息技术有限公司 | 基于bpmn标准的分布式任务异步调度和监控的系统 |
-
2020
- 2020-03-02 CN CN202010135355.7A patent/CN111290868B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231199A (zh) * | 2011-06-27 | 2011-11-02 | 中国建设银行股份有限公司 | 一种交易信息异步处理的方法及装置 |
CN103593236A (zh) * | 2013-11-14 | 2014-02-19 | 华为技术有限公司 | 一种业务流程调度的计算机设备、方法和装置 |
CN106603708A (zh) * | 2016-12-30 | 2017-04-26 | 中国建设银行股份有限公司 | 一种业务处理方法及装置 |
US20180239636A1 (en) * | 2017-02-22 | 2018-08-23 | Nutanix, Inc. | Task execution framework using idempotent subtasks |
CN107944773A (zh) * | 2017-12-29 | 2018-04-20 | 咪咕文化科技有限公司 | 一种业务流程控制方法、装置及存储介质 |
CN109299946A (zh) * | 2018-07-27 | 2019-02-01 | 阿里巴巴集团控股有限公司 | 一种支付流程的处理方法和装置 |
CN110377413A (zh) * | 2019-07-24 | 2019-10-25 | 上海金融期货信息技术有限公司 | 基于bpmn标准的分布式任务异步调度和监控的系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113568731A (zh) * | 2021-09-24 | 2021-10-29 | 苏州浪潮智能科技有限公司 | 一种任务调度方法、芯片以及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111290868B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
US9262228B2 (en) | Distributed workflow in loosely coupled computing | |
US8589929B2 (en) | System to provide regular and green computing services | |
WO2021159638A1 (zh) | 集群队列资源的调度方法、装置、设备及存储介质 | |
CN108319495B (zh) | 任务处理方法及装置 | |
CN111400011B (zh) | 一种实时任务调度方法、系统、设备及可读存储介质 | |
CN110795254A (zh) | 一种基于php处理高并发io的方法 | |
CN115840631B (zh) | 基于raft的高可用分布式任务调度方法和设备 | |
CN113225269B (zh) | 基于容器的工作流调度方法、装置、系统及存储介质 | |
CN104750522A (zh) | 任务或流程的动态执行方法和系统 | |
Cho et al. | Scheduling parallel real-time tasks on the minimum number of processors | |
CN112035229A (zh) | 一种计算图处理方法、装置及存储介质 | |
CN109582445A (zh) | 消息处理方法、装置、电子设备及计算机可读存储介质 | |
CN113010286A (zh) | 并行任务调度方法、装置、计算机设备和存储介质 | |
CN111290868B (zh) | 任务处理方法、装置和系统以及流程引擎 | |
CN111144830A (zh) | 一种企业级计算资源管理方法、系统和计算机设备 | |
CN110928672B (zh) | 一种任务编排方法、装置、设备及存储介质 | |
CN112395062A (zh) | 任务处理方法、装置、设备及计算机可读存储介质 | |
CN110750362A (zh) | 生物信息的分析方法、装置和存储介质 | |
CN115617480A (zh) | 一种任务调度方法、装置、系统及存储介质 | |
CN111353766A (zh) | 分布式业务系统的业务流程处理系统及方法 | |
CN115344370A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN111190725B (zh) | 任务处理方法、装置、存储介质及服务器 | |
CN113034048A (zh) | 任务处理方法、装置、服务器及存储介质 | |
CN111782482B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |