CN115454683A - 消息处理方法、系统、电子设备及计算机可读存储介质 - Google Patents
消息处理方法、系统、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115454683A CN115454683A CN202211418502.7A CN202211418502A CN115454683A CN 115454683 A CN115454683 A CN 115454683A CN 202211418502 A CN202211418502 A CN 202211418502A CN 115454683 A CN115454683 A CN 115454683A
- Authority
- CN
- China
- Prior art keywords
- subscriber
- message
- target
- configuration information
- subscribers
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 148
- 230000008569 process Effects 0.000 claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000012216 screening Methods 0.000 claims abstract description 14
- 238000012544 monitoring process Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 abstract description 4
- 230000008859 change Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 10
- 238000012986 modification Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013519 translation Methods 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/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multi Processors (AREA)
Abstract
本申请提供一种消息处理方法、系统、电子设备及计算机可读存储介质,该消息处理方法应用于流程引擎;该消息处理方法包括:从消息队列中获取目标业务操作消息;目标业务操作消息用于指示流程引擎将目标业务操作消息的内容发送至目标订阅者。根据目标业务操作消息获取对应的所有目标订阅者;获取订阅者配置信息;订阅者配置信息包括所有订阅者信息;根据订阅者配置信息生成所有订阅者和第一注册表;判断第一注册表中是否存在刷新标识;若不存在刷新标识,则从所有订阅者中筛选目标订阅者;并将目标业务操作消息发送给目标订阅者。采用本申请提供的消息处理方法可用于处理及时性要求不高的业操作;可提高流程响应效率,减少用户等待时间。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种消息处理方法、系统、电子设备及计算机可读存储介质。
背景技术
流程引擎是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现。通俗的说,流程就是多种业务对象在一起合作完成某件事情的步骤,把步骤变成计算机能理解的形式就是流程引擎。
流程引擎应用日渐广泛,在由流程驱动的各种系统中都有应用,例如OA、CRM、ERP、ECM、BI等。在企业应用中还有很多产品或平台集成流程引擎,用来处理系统运行过程中发起的业务流程。
目前,流程引擎一般采用实时的方式做数据处理和第三方业务系统回调等,即用户提交流程后,等待第三方业务系统处理完毕后进行其他操作。在上述过程中流程引擎的业务处理效率会受到第三方业务系统的直接影响,导致效率低下,用户体验感差,甚至流程中断等问题。
发明内容
本申请实施例的目的在于提供一种消息处理方法、系统、电子设备及计算机可读存储介质,根据订阅者配置信息生成所有订阅者,再根据目标业务操作消息确定目标业务消息的所有目标订阅者;在所有订阅者确定出发送该目标业务消息的目标订阅者。在此过程中,若存在刷新标识,则证明订阅者配置信息发生了变化,进一步生成新订阅者;在串行运行过程中可生成新订阅者后,将新订阅者纳入所有订阅者中;将目标业务消息发送给所有目标订阅者。通过本申请实施例提供的消息处理方法,由于不论订阅者是否处理该目标业务操作消息,流程引擎的节点都会流转;因此,可避免第三方业务系统对流程引擎业务处理效率的影响;提升用户的体验感,也避免了因第三方业务系统引起的流程中断问题。
第一方面,本申请实施例提供一种消息处理方法,方法应用于流程引擎;该消息处理方法包括:获取订阅者配置信息;其中,订阅者配置信息包括所有订阅者信息;根据订阅者配置信息生成所有订阅者和第一注册表;判断第一注册表中是否存在刷新标识;其中,刷新标识表征订阅者配置信息发生了改变;若不存在刷新标识,则从消息队列中获取目标业务操作消息;其中,目标业务操作消息用于指示流程引擎将目标业务操作消息的内容发送至目标订阅者;根据目标业务操作消息获取对应的所有目标订阅者;从所有订阅者中筛选目标订阅者;并将目标业务操作消息发送给目标订阅者。
在上述实现过程中,根据订阅者配置信息生成所有订阅者和第一注册表;所有订阅者是流程引擎可以面向的第三方业务系统,第一注册表可以理解为表征订阅者信息的唯一键值,该唯一键值可以表征订阅者配置信息是否发生了变化;通过目标业务操作消息获得对应的所有目标订阅者;若订阅者配置信息没发生变化,那么将目标业务操作消息发送给目标订阅者。无论订阅者是否处理该目标业务操作信息,流程引擎都会进行节点流转;也就是说,流程引擎的工作进程不受该订阅者是否处理目标业务操作消息的限制,能够提高流程引擎的工作效率。
可选地,在本申请实施例中,订阅者信息包括消息类型、订阅者名称空间、订阅者类型、订阅者版本号和订阅者程序包路径;根据订阅者配置信息生成所有订阅者和第一注册表包括:获取订阅者配置信息中的订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息;根据订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息生成第一注册表;根据消息类型、订阅者名称空间、订阅者类型和订阅者程序包路径中的一个或多个信息生成所有订阅者。
在上述实现过程中,根据订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息生成第一注册表;根据消息类型、订阅者名称空间、订阅者类型和订阅者程序包路径中的一个或多个信息生成所有订阅者。可以理解的是,第一注册表可以表征当前订阅者的配置信息;所有订阅者则是当前的流程引擎可以面向的所有第三方系统。也就是说,流程引擎的流程消息处理与向第三方系统发送目标业务操作消息是处于不同的线程中的,互不影响,从而可以避免第三方系统崩溃导致的流程中断。
可选地,在本申请实施例中,在根据订阅者配置信息生成所有订阅者和第一注册表之后,方法还包括:监听订阅者配置信息的文件更新时间;判断文件更新时间是否发生变化;若文件更新时间发生变化,则判定所述订阅者配置信息发生改变并生成刷新标识。
在上述实现过程中,实时监听订阅者配置信息的文件更新时间是否发生改变,如果发送了改变,就生成刷新标识。因此,刷新标识是可以反应配置信息是否发生改变的标识。也就是说,在订阅者配置信息的文件更新时间发生改变时,流程引擎会发现该改变并生成刷新标识,使消息处理方式对应改变。
可选地,在本申请实施例中,在生成刷新标识之后,方法还包括:读取改变后的订阅者配置信息;根据改变后的订阅者配置信息生成第二注册表。
在上述实现过程中,根据改变后的订阅者配置信息生成第二注册表。本领域技术人员可以将注册表理解为键值,在本申请实施例中以比对键值的方式确定订阅者配置信息是否发生了改变,从而方便快捷地判断了订阅者配置信息的状态。
可选地,在本申请实施例中,在生成刷新标识之后,方法还包括从第二注册表中的订阅者同步至第一注册表中,并从第一注册表中删除与第二注册表中不一致的订阅者。
在上述实现过程中,将第二注册表中新的信息同步到第一注册表中;同时,删除第一注册表和第二注册表中不一致的订阅者。从而更新了第一注册表,在后续的处理过程中,继续使用第一注册表作为对比对象。
可选地,在本申请实施例中,该消息处理方法还包括:若存在刷新标识,则根据变化后的订阅者配置信息生成新订阅者;并将新订阅者纳入所有订阅者,从消息队列中获取目标业务操作消息;根据目标业务操作消息获取对应的所有目标订阅者,从所有订阅者中筛选目标订阅者;并将目标业务操作消息发送给目标订阅者。
在上述实现过程中,如果存在刷新标识,就根据变化后的订阅者配置信息生成新订阅者;将新订阅者纳入所有订阅者中;将目标业务操作消息发送给所有目标订阅者。从而实时响应了配置信息的变化,保证了目标业务操作信息顺利发送至订阅者。
第二方面,一种消息处理方法,方法应用于包括全局排它锁的流程引擎;其中,全局排它锁用于在并行线程处理目标任务时锁定该目标任务;该方法包括:获取订阅者配置信息,并根据订阅者配置信息生成所有订阅者和第一注册表;步骤S1:判断第一注册表中是否存在刷新标识;其中,刷新标识表征订阅者配置信息发生了改变;若存在刷新标识,则根据变化后的配置信息生成新订阅者;将新订阅者纳入所有订阅者;步骤S2:从消息队列中获取目标业务操作消息,并根据目标业务操作消息获取对应的所有目标订阅者;其中,目标业务操作消息用于指示流程引擎将目标业务操作消息的内容发送至目标订阅者;从所有订阅者中筛选目标订阅者,并将目标业务操作消息发送给目标订阅者;其中,步骤S1与步骤S2并行执行;全局排它锁在步骤S1执行时锁定步骤S1,在步骤S2执行时锁定步骤S2。
在上述实现过程中,首先获取订阅者配置信息,并根据订阅者配置信息生成所有订阅者和第一注册表;如果存在刷新标识,就根据改变后的配置信息生成新订阅者,将新订阅者纳入所有订阅者中;同时,在另一线程中,获取目标业务操作消息以及对应的所有目标订阅者;将对应的目标业务操作消息发送给对应的目标订阅者。在上述过程中,配置、获取消息并发送位于一个线程中;刷新过程在另一独立的线程中;两者并行运行能够提高消息的处理效率,减少消息处理的等待时间。
第三方面,本申请实施例提供一种消息处理系统,消息处理系统应用于流程引擎;消息处理系统包括:目标消息获取模块、配置信息获取模块、刷新标识模块和消息发送模块;配置信息获取模块用于获取订阅者配置信息;其中,订阅者配置信息包括所有订阅者信息;配置信息获取模块还用于根据订阅者配置信息生成所有订阅者和第一注册表;刷新标识模块用于判断第一注册表中是否存在刷新标识;其中,刷新标识表征订阅者配置信息发生了改变;所述目标消息获取模块用于当第一注册表中不存在所述刷新标识时,从消息队列中获取目标业务操作消息;其中,所述目标业务操作消息用于指示所述流程引擎将所述目标业务操作消息的内容发送至目标订阅者;并根据所述目标业务操作消息获取对应的所有目标订阅者;消息发送模块用于从所有订阅者中筛选目标订阅者;并将目标业务操作消息发送给目标订阅者。
第四方面,本申请实施例提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。
第五方面,本申请实施例还提供一种计算机可读存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的消息处理第一流程图;
图2为本申请实施例提供的所有订阅者和第一注册表生成流程图;
图3为本申请实施例提供的刷新标识生成流程图;
图4为申请实施例提供的判断配置信息是否发生变化的流程图;
图5为本申请实施例提供的配置信息变更消息处理流程图;
图6为本申请实施例提供的另一消息处理方法流程图;
图7为本申请实施例提供的一优选实施例的消息处理的流程图;
图8为本申请实施例提供的消息处理系统的模块示意图;
图9为本申请实施例提供的电子设备的结构示意图;
图10为本申请实施例提供的并行运行示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
申请人在研究过程中发现,流程引擎现有的处理方式效率会受到第三方业务系统处理效率的直接影响;而且第三方业务系统的处理效率也是流程引擎不可控制的,会导致用户的体验感很差,等待响应时间较长。另外一个问题就是第三方业务系统的处理结果可能会影响流程引擎的流程流转,如第三方业务系统发生错误时,导致流程中断等问题。
基于此,本申请提供的新消息处理方法根据订阅者配置信息生成所有订阅者,再根据目标业务操作消息确定目标业务消息的所有目标订阅者;在所有订阅者确定出发送该目标业务消息的目标订阅者。在此过程中,若存在刷新标识,则证明订阅者配置信息发生了变化,进一步生成新订阅者;在串行运行过程中可生成新订阅者后,将新订阅者纳入所有订阅者中;将目标业务消息发送给所有目标订阅者。通过本申请实施例提供的消息处理方法,由于不论订阅者是否处理该目标业务操作消息,流程引擎的节点都会流转;因此,可避免第三方业务系统对流程引擎业务处理效率的影响;提升用户的体验感,也避免了因第三方业务系统引起的流程中断问题。
在介绍本申请前,首先对本申请涉及的几个概念作简要说明。
“业务操作消息”是流程引擎可以处理的消息,每一条消息都有名称、内容以及消息的类型、消息面可以发送的对象等,这些业务操作消息在消息传输的过程中可保存在消息队列中,按照“先进先出”的规则处理业务操作消息。
“订阅者”是与流程引擎对接的第三方系统,比如需要在流程节点流转时发送短信,则此时的第三方系统可以是短信发送系统;若想要在代办系统的首页推送该代办事项或代办超时提醒,则此时的第三方系统可以是代办系统;若需要将流程引擎中的相关处理结果回调至业务系统,则此时的第三方系统可以是业务系统,企业的业务系统一般包括企业信息管理系统(EIP)、协同管理系统(OA)、市场营销管理、生产制造系统(ERP)、财务管理系统、人力资源管理系统(HR)和资产管理系统等。
“订阅者配置信息”是对应订阅者的配置信息,订阅者配置信息包括订阅者可以接收的所有消息类型、订阅者名称、订阅者名称空间、订阅者类型、订阅者版本号、订阅者程序包路径等;本领域技术人员可以理解的是“订阅者配置信息”是关于订阅者的参数信息。
请参看图1,图1为本申请实施例提供的消息处理第一流程图;该方法包括:
步骤S100:获取订阅者配置信息。
在上述步骤S100中,从流程引擎中获取订阅者配置信息,本领域技术人员可以理解的是,在系统启动时流程引擎就可根据将要面向的订阅者生成订阅者配置信息。
步骤S101:根据订阅者配置信息生成所有订阅者和第一注册表。
在上述步骤S101中,根据订阅者配置信息可以生成所有的订阅者和第一注册表;本领域技术人员可以将第一注册表理解为表征订阅者配置信息的键值,其可反映当前的订阅者配置信息。
步骤S102:判断第一注册表中是否存在刷新标识。
在上述步骤S102中,若订阅者配置信息发生了变化;进一步地,第一注册表发生变化;第一注册表的变化可以通过刷新标识来进行捕获。
步骤S103:若不存在刷新标识,则从消息队列中获取目标业务操作消息。
在上述步骤S103中:若不存在刷新标识,则从消息队列中获取目标业务操作消息,该业务操作消息是流程引擎处理的消息;可以理解的是,消息队列是在消息的传输过程中保存消息的容器,队列是一种先进先出的数据结构。
步骤S104:根据目标业务操作消息获取对应的所有目标订阅者,从所有订阅者中筛选目标订阅者;并将目标业务操作消息发送给目标订阅者。
在上述步骤S104中:每一条消息都包括消息名称、消息类型和消息内容等基本信息;通过消息名称、消息类型和消息内容等基本信息可以得到该条业务操作消息的所有目标订阅者;需要说明的是,其中所有目标订阅者的个数不限。需要说明的是,此处的所有目标订阅者与步骤S101中的所有订阅者有所不同,此处进行区分;所有订阅者代表流程引擎可以面向的所有订阅者,也就是说,流程引擎可以面向的所有第三方系统;所有目标订阅者是根据目标业务操作消息生成的,代表此条目标订阅消息要发送给的所有订阅者称为所有目标订阅者。将目标业务操作消息发送给所有订阅者中存在的目标订阅者。
通过图1可知,根据订阅者配置信息生成所有订阅者和第一注册表;所有订阅者是流程引擎可以面向的第三方业务系统,第一注册表可以理解为表征订阅者信息的唯一键值,该唯一键值可以表征订阅者配置信息是否发生了变化;通过目标业务操作消息获得对应的所有目标订阅者;若订阅者配置信息没发生变化,那么将目标业务操作消息发送给目标订阅者。无论订阅者是否处理该目标业务操作信息,流程引擎都会进行节点流转;也就是说,流程引擎的工作进程不受该订阅者是否处理目标业务操作消息的限制,能够提高流程引擎的工作效率。
请参看图2,图2为本申请实施例提供的所有订阅者和第一注册表生成流程图;该方法包括:
步骤S200:获取订阅者配置信息中的订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息。
在上述步骤S200中,获取订阅者配置信息中的订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息,可以根据订阅者配置信息生成所有订阅者和第一注册表。
步骤S201:根据订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息生成第一注册表。
在上述步骤S201中,通过订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息生成第一注册表;本领域技术人员可以将第一注册表理解为唯一的key,生成唯一key可以使用MD5算法、SHA算法等。MD5和SHA在计算机安全领域使用比较广泛的密码散列函数,也是数字签名和消息认证中普遍使用的两种算法。由于修改配置信息的都是有权限的管理员,相对来说安全性要求不高;MD5相对于SHA的优势是运算速度更快,所以本方案采用的是MD5。但在实际应用中,此处生成key的算法可以有多种,本申请实施例中使用的MD5算法不应当成为生成key的算法的限制。
步骤S202:根据消息类型、订阅者名称空间、订阅者类型和订阅者程序包路径中的一个或多个信息生成所有订阅者。
在上述步骤S202中,根据消息类型、订阅者名称空间、订阅者类型和订阅者程序包路径中的一个或多个信息生成所有订阅者;可以理解的是,每一消息类型都可以对应多个订阅者,确定出不同消息类型映射的所有订阅者。
通过图2可知,根据订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息生成第一注册表;根据消息类型、订阅者名称空间、订阅者类型和订阅者程序包路径中的一个或多个信息生成所有订阅者。可以理解的是,第一注册表可以表征当前订阅者的配置信息;所有订阅者则是当前的流程引擎可以面向的所有第三方系统。也就是说,流程引擎的流程消息处理与向第三方系统发送目标业务操作消息是处于不同的线程中的,互不影响,从而可以避免第三方系统崩溃导致的流程中断。
请参看图3,图3为本申请实施例提供的刷新标识生成流程图;该方法包括:
步骤S300:监听订阅者配置信息的文件更新时间。
在上述步骤S300中,监听订阅者配置信息的文件更新时间。需要说明的是,在本申请实施例中,监听订阅者配置信息的文件更新时间在独立的线程中启动,当发现该配置信息的件更新时间有变更时,判定订阅者配置信息发生改变并生成刷新标识。
步骤S301:判断该文件更新时间是否发生变化。
步骤S302:若该文件更新时间发生变化,判定订阅者配置信息发生改变并生成刷新标识。
在上述步骤S302中,文件更新发生变化后,判定订阅者配置信息发生改变,订阅者配置文件监听事件会生成刷新标识。
通过图3可知,实时监听订阅者配置信息的文件更新时间是否发生改变,如果发送了改变,就生成刷新标识;因此,刷新标识是可以反应配置信息是否发生改变的标识。因此,在订阅者配置信息的文件更新时间发生改变时,流程引擎会发现该改变并生成刷新标识,使消息处理方式对应改变。
请参看图4,图4为申请实施例提供的判断配置信息是否发生变化的流程图;该方法包括:
步骤S400:读取改变后的订阅者配置信息。
在上述步骤S400中,读取当前订阅者配置信息,也就是改变后的订阅者配置信息,包括订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息。
步骤S401:根据改变后的订阅者配置信息生成第二注册表。
在上述步骤S401中,根据当前订阅者配置信息生成第二注册表,可以理解的是,当配置信息未发生变化时,第一注册表与第二配置信息一致;但第二注册表反映的是当前的配置信息。
通过图4可知,根据订阅者配置信息生成第二注册表,第二注册表反映的是当前的配置信息。本领域技术人员可以将注册表理解为键值,在本申请实施例中可以以比对键值的方式确定订阅者配置信息是否发生了改变,从而方便快捷地判断了订阅者配置信息的状态。
在一可选地实施例中,在生成刷新标识之后,方法还包括从第二注册表中的订阅者同步至第一注册表中,并从第一注册表中删除与第二注册表中不一致的订阅者。示例性地,在生成刷新标识以后,当前的配置信息读取完毕,生成第二注册表;将第二注册表中的订阅者同步至第一注册表中,此时,第一注册表中包括原始第一注册表和第二注册表中的所有订阅者;再将第一注册表中与第二注册表不一致的订阅者删除;可以理解的是,此时的第一注册表已经更新。
由此可知,将第二注册表中新的信息同步到第一注册表中;同时,删除第一注册表和第二注册表中不一致的订阅者。从而更新了第一注册表,在后续的处理过程中,继续使用第一注册表作为对比对象。
请参看图5,图5为本申请实施例提供的配置信息变更消息处理流程图;该方法包括:
步骤S500:若存在刷新标识,则根据变化后的订阅者配置信息生成新订阅者;并将所述新订阅者纳入所述所有订阅者。
在上述步骤S500中,存在刷新标识,则证明配置信息发生了变更;在配置信息发生变更以后;进一步地,根据被改变的配置信息生成新的订阅者。重新根据变化后的配置信息的消息类型、订阅者名称空间、订阅者类型和订阅者程序包路径中的一个或多个信息生成新订阅者。
步骤S501:从消息队列中获取目标业务操作消息。
步骤S502:根据目标业务操作消息获取对应的所有目标订阅者,从所有订阅者中筛选目标订阅者;并将目标业务操作消息发送给目标订阅者。
在上述步骤S502中,此次仍然从所有订阅者中进行筛选,但此次的所有订阅者中包括了配置信息变化后的新订阅者;进一步地,将目标业务操作消息发送给目标订阅者。
通过图5可知,如果存在刷新标识,就根据变化后的订阅者配置信息生成新订阅者;将目标业务操作消息发送给目标订阅者,此时的所有订阅者中包括了新订阅者。从而实时响应了配置信息的变化,保证了目标业务操作信息顺利发送至订阅者。
请参看图6,图6为本申请实施例提供的另一消息处理方法流程图;该方法包括:
步骤S600:获取订阅者配置信息,并根据订阅者配置信息生成所有订阅者和第一注册表。
步骤S601:判断第一注册表中是否存在刷新标识;其中,刷新标识表征订阅者配置信息发生了改变;若存在刷新标识,则根据变化后的配置信息生成新订阅者;将新订阅者纳入所有订阅者。
步骤S602:从消息队列中获取目标业务操作消息,并根据目标业务操作消息获取对应的所有目标订阅者;其中,目标业务操作消息用于指示流程引擎将目标业务操作消息的内容发送至目标订阅者;从所有订阅者中筛选目标订阅者,并将目标业务操作消息发送给目标订阅者。在上述实现过程中,首先获取订阅者配置信息,并根据订阅者配置信息生成所有订阅者和第一注册表;如果存在刷新标识,就根据改变后的配置信息生成新订阅者,将新订阅者纳入所有订阅者中;同时,在另一线程中,获取目标业务操作消息以及对应的所有目标订阅者;将对应的目标业务操作消息发送给对应的目标订阅者。在上述过程中,配置、获取消息并发送位于一个线程中;刷新过程在另一独立的线程中;两者并行运行,能够提高消息的处理效率,减少消息处理过程中的等待时间。
在一可选地实施例中,对消息队列中消息的处理和对配置文件的刷新可以在两个线程中运行;请参看图10,图10为本申请实施例提供的并行运行示意图。需要说明的是,在本申请实施例中消息管理器可以理解为包括订阅者配置文件的内存。
在流程引擎启动时,首先根据订阅者配置信息生成第一注册表,并缓存到消息管理器中;需要说明的是,第一注册表中包括所有订阅者。在流程引擎启动时,也在流程引擎中生成全局排它锁;本领域技术人员可以理解的是,全局排它锁用于在并行线程处理目标任务时锁定该目标任务。在生成第一注册表的同时,同时在另一线程中监听消息管理其中的配置文件的更改时间是否发生变化。
在消息处理的线程中,生成第一注册表后,会根据消息类型和目标订阅者等对消息队列中的消息进行处理;与此同时,在另一线程中持续判断配置文件是否发生了变更。若配置文件被判断为发生了改变,则根据改变后的配置文件上生成第二注册表;其中,第二注册表中包括新订阅者。
进一步地,使用全局排它锁对消息处理线程或消息管理器刷新线程进行加锁;本领域技术人员可以理解的是,在加锁过程中仅一者可以被成功加锁;示例性地,若消息处理线程被加锁,那么消息处理线程继续处理消息;若消息管理器刷新线程被加锁,那么接使用第二注册表更换第一注册表;此时,消息管理器中存在的是第二注册表。
更具体地,当消息处理线程被加锁后,将消息队列中的第一个消息取出队列;根据第一注册表对该消息进行处理,处理结束后释放排它锁。当消息管理器刷新线程被加锁后,接使用第二注册表更换第一注册表,更换后释放排它锁;本领域技术人员可以理解的是,加锁后消息处理线程暂停运行或被挂起,当排他锁释放以后,消息处理线程则继续运行处理之前未完成的事务;此时,消息处理线程处理目标消息则根据第二注册表进行处理。也就是说,消息根据变更后的配置信息处理需要处理的目标业务操作消息。
需要说明的是,全局排它锁并非时刻工作,当消息给管理器中的配置文件未发生变更时,则不需要进行加锁操作;本申请实施例中提供的全局排它锁仅仅是在配置文件变更时使用,其他时刻不需要使用该全局排它锁。
通过图10可知,若本申请实施例中的消息处理线程与消息管理器刷新线程在不同的线程中并行运行;由于根据配置信息生成所有订阅者的过程需要一定时间,消息处理线程与消息管理器刷新线程并行后,在订阅者生成的过程中,消息处理不受影响;因此,可以提高消息的处理效率,减少消息处理的等待时间。
另一方面,由于是在两个不同的线程中并行运行,在一种可能的情形中,消息管理器刷新异常或失败,也不会影响消息的处理;如果刷新失败,可以采取间隔一定时间后再次刷新的策略;因此,可以提高消息的处理效率。
请参看图7,图7为本申请实施例提供的一优选实施例的消息处理的流程图;该方法包括:
步骤S700:读取配置文件中的订阅者配置信息。
在上述步骤S700中,订阅者配置信息包括消息类型、订阅者名称、订阅者名称空间、订阅者类型、订阅者版本号、订阅者程序包路径等。
步骤S701:根据配置信息中的订阅者程序包路径、订阅者名称空间和消息类型,反射生成订阅者。
在上述步骤S701中,根据配置信息中的订阅者程序包路径、订阅者名称空间和消息类型,通过反射生成订阅者;本领域技术人员可以理解的是,反射是指程序可以访问、检测和修改它本身状态或行为的一种能力。
步骤S702:根据订阅者名称空间、订阅者类型和订阅者版本号用MD5算法生成第一注册表。
在上述步骤S702中,本领域技术人员可以将第一注册表理解为唯一key,生成唯一key的算法可以是MD5或者SHA等;一般可以进行配置信息修改的都是管理员;因此,此处对安全性的要求不高。
步骤S703:将消息类型、生成的第一注册表及生成的订阅者缓存在订阅者管理器中。
在上述步骤S703中,将消息类型、生成的第一注册表及生成的订阅者缓存在订阅者管理器中;本领域技术人员可以将订阅者管理器理解为流程引擎中的一个存储的中间转换空间。
步骤S704:判断第一注册表中是否存在刷新标识。
在上述步骤S704中,在独立线程中启动订阅者配置文件的修改时间的监听事件,判断订阅者配置信息是否有变更;若修改时间有变,则会生成刷新标识。
步骤S705:若不存在刷新标识,则从消息队列中获取目标业务操作消息。
步骤S706:根据目标业务操作消息获取对应的所有目标订阅者。
步骤S707:从所有订阅者中筛选目标订阅者;并将目标业务操作消息发送给目标订阅者。
步骤S708:订阅者处理目标业务操作消息,并记录订阅者处理结果日志。
步骤S709:当发现订阅者配置信息有变更时,即存在刷新标识;读取变更后的配置文件中的订阅者配置信息。
在上述步骤S709中,读取变更后的配置文件中的订阅者配置信息,包括消息类型、订阅者名称、订阅者名称空间、订阅者类型、订阅者版本号、订阅者程序包路径等。
步骤S710:根据变更后的配置文件中的订阅者名称空间、类型和版本号用MD5算法生成第二注册表和新订阅者。
步骤S711:将第二注册表中的订阅者同步至第一注册表中,并从第一注册表中删除与第二注册表中不一致的订阅者。
通过图7可知,本方法采用消息队列的方式来处理及时性要求不高的业务操作,比如第三方业务系统的回调等,提高了流程的响应效率和体验感。将队列消息放在独立的线程中运行处理,减少了对流程的影响。队列消息的处理方式采用可配置式的插件处理方式,即注册消息的订阅者;能够提高流程引擎响应效率。
在一可选地实施例中,在流程审批过程中,为了提醒处理人有待办需要处理,一般流程引擎都会有短信提醒功能。而发送短信一般是由另外的短信系统专门来负责处理,如果有其他系统需要发送短信,则可以直接调用短信系统,而且也不需要每个系统都去对接短信网关,实现系统解耦。在本方案中,会将发送短信的消息放到消息队列中,然后由发送短信订阅者调用外部短信系统来处理该消息。
在系统启动时,读取消息订阅者的配置文件;订阅者名称空间和订阅者类型都是一起写在XML的Class属性里面,Path属性指定订阅者程序包的位置。
进一步地,为了实现可配置的插件式消息处理方式,那么订阅者就必须放在独立的程序包中,通过反射来生成订阅者,方便订阅者的动态加载和更新。示例性地,首先加载Path指定的程序包;然后从程序包中获取订阅者类型;最后根据类型生成订阅者。需要说明的是,主流的高级编程语言都提供了根据名称空间和类名,直接反射生成对象的方法,在实际应中可选择一使用。
将订阅者名称空间、订阅者类型名和订阅者版本号组合成唯一的字符串(如:EIP.Wsp.Hosting.Subscribe.RemindSubscriber#1.0);然后在用MD5算法把该字符串生成key。需要说明的是,本申请实施例使用的MD5算法不能成为生成key的算法的限制,在实际应中也可选择如SHA等算法。
将消息类型、生成的Key及生成的订阅者缓存在订阅者管理器中;可以理解的是,订阅者管理器可以是内存中的变量等。
订阅者初始化后,启动文件的监听事件来监听配置文件是否有变更。部分高级语言直接提供了监听文件是否有变更的能力和事件,可以直接使用。如果没有提供可以采用轮询的方式;示例性地,系统启动时,获取一次配置文件的修改时间;然后每5秒钟获取一次配置文件的修改时间;将获取到的文件修改时间和上一次的修改时间做比较;如果和上一次的修改时间不相等,则认为配置文件有变更,设置订阅者管理器刷新标识为true。
在流程提交时,先将当前处理人的待办改为已办状态,同时给下一步处理人生成待办数据。然后将短信提醒内容及处理人手机号放入消息队列中。如果队列中有消息,则将该消息出队,然后传递该消息给订阅者管理器。订阅者管理器从缓存中查询该消息类型的订阅者(即发送短信订阅者);将消息传递给该订阅者;订阅者处理消息(即调用短信系统发送短信);阅者管理器记录每个订阅者的处理结果日志。
在上述实现过程中,由短信系统专门来负责发送短信,如果有其他系统需要发送短信,则可以直接调用短信系统,而且也不需要每个系统都去对接短信网关,实现系统解耦。相对于流程流转来说,发送短信的及时性要求并不高,而且短信发送的成功与否并不影响流程的流转,该功能只是一个辅助性的功能;即使短信发送失败,下一步的处理人也应该能够正常收到待办并处理。
请参看图8,图8为本申请实施例提供的消息处理系统的模块示意图;该消息处理系统100包括:目标消息获取模块110、配置信息获取模块120、刷新标识模块130和消息发送模块140。
配置信息获取模块120用于获取订阅者配置信息;其中,订阅者配置信息包括所有订阅者信息;
配置信息获取模块120还用于根据订阅者配置信息生成所有订阅者和第一注册表;刷新标识模块130用于判断第一注册表中是否存在刷新标识;其中,刷新标识表征订阅者配置信息发生了改变;
目标消息获取模块110用于从消息队列中获取目标业务操作消息;其中,目标业务操作消息用于指示流程引擎将目标业务操作消息的内容发送至目标订阅者;并根据目标业务操作消息获取对应的所有目标订阅者;消息发送模块140用于从所有订阅者中筛选目标订阅者;并将目标业务操作消息发送给目标订阅者。
在一可选地实施例中,订阅者信息包括消息类型、订阅者名称空间、订阅者类型、订阅者版本号和订阅者程序包路径;配置信息获取模块120配置为根据订阅者配置信息生成所有订阅者和第一注册表包括:配置信息获取模块120还配置为获取订阅者配置信息中的订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息;配置信息获取模块120还配置为根据订阅者名称空间、订阅者类型和订阅者版本号中的一个或多个信息生成第一注册表;配置信息获取模块120还配置为根据消息类型、订阅者名称空间、订阅者类型和订阅者程序包路径中的一个或多个信息生成所有订阅者。
在一可选地实施例中,在配置信息获取模块120根据订阅者配置信息生成所有订阅者和第一注册表之后:刷新标识模块130配置为监听订阅者配置信息的文件更新时间;刷新标识模块130还配置为判断订阅者配置信息的文件更新时间是否发生变化;若订阅者配置信息的文件更新时间发生变化,则通过刷新标识模块130判定所述订阅者配置信息发生改变并生成刷新标识。
在一可选地实施例中,在刷新标识模块130生成刷新标识之后,刷新标识模块130读取改变后的订阅者配置信息;根据改变后的订阅者配置信息生成第二注册表。
在一可选地实施例中,在刷新标识模块130生成刷新标识之后,从第二注册表中的订阅者同步至第一注册表中,刷新标识模块130配置为从第一注册表中删除与第二注册表中不一致的订阅者。
在一可选地实施例中,若存在刷新标识,则配置信息获取模块120配置为根据变化后的订阅者配置信息生成新订阅者;判断所有目标订阅者中是否存在新订阅者;若所有目标订阅者中存在新订阅者,则消息发送模块140配置为将目标业务操作消息发送给新订阅者。
在一可选地实施例中,若所有目标订阅者中不存在新订阅者,则消息发送模块140配置为将新订阅者对应的业务操作消息放入消息队列。
请参见图9,图9为本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备300,包括:处理器301和存储器302,存储器302存储有处理器301可执行的机器可读指令,机器可读指令被处理器301执行时执行如上的方法。
基于同一发明构思,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。
所述计算机可读存储介质可以是随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等各种可以存储程序代码的介质。其中,存储介质用于存储程序,所述处理器在接收到执行指令后,执行所述程序,本发明实施例任一实施例揭示的过程定义的电子终端所执行的方法可以应用于处理器中,或者由处理器实现。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。
所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种消息处理方法,其特征在于,所述方法应用于流程引擎;所述方法包括:
获取订阅者配置信息;其中,所述订阅者配置信息包括所有订阅者信息;
根据所述订阅者配置信息生成所有订阅者和第一注册表;判断所述第一注册表中是否存在刷新标识;其中,所述刷新标识表征所述订阅者配置信息发生了改变;
若不存在所述刷新标识,则从消息队列中获取目标业务操作消息;其中,所述目标业务操作消息用于指示所述流程引擎将所述目标业务操作消息的内容发送至目标订阅者;
根据所述目标业务操作消息获取对应的所有目标订阅者,从所述所有订阅者中筛选所述目标订阅者;并将所述目标业务操作消息发送给所述目标订阅者。
2.根据权利要求1所述的方法,其特征在于,其中,所述订阅者信息包括消息类型、订阅者名称空间、订阅者类型、订阅者版本号和订阅者程序包路径;
所述根据所述订阅者配置信息生成所有订阅者和第一注册表,包括:
获取所述订阅者配置信息中的所述订阅者名称空间、所述订阅者类型和所述订阅者版本号中的一个或多个信息;
根据所述订阅者名称空间、所述订阅者类型和所述订阅者版本号中的一个或多个信息生成所述第一注册表;
根据所述消息类型、订阅者名称空间、所述订阅者类型和所述订阅者程序包路径中的一个或多个信息生成所述所有订阅者。
3.根据权利要求1所述的方法,其特征在于,在所述根据所述订阅者配置信息生成所有订阅者和第一注册表之后,所述方法还包括:
监听所述订阅者配置信息的文件更新时间;
判断所述文件更新时间是否发生变化;
若所述文件更新时间发生变化,则判定所述订阅者配置信息发生改变并生成所述刷新标识。
4.根据权利要求3所述的方法,其特征在于,在所述生成所述刷新标识之后,所述方法还包括:读取改变后的所述订阅者配置信息;根据所述改变后的所述订阅者配置信息生成第二注册表。
5.根据权利要求4所述的方法,其特征在于,在所述生成所述刷新标识之后,所述方法还包括从所述第二注册表中的订阅者同步至所述第一注册表中,并从所述第一注册表中删除与所述第二注册表中不一致的订阅者。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若存在所述刷新标识,则根据变化后的订阅者配置信息生成新订阅者,并将所述新订阅者纳入所述所有订阅者;
从消息队列中获取目标业务操作消息;
根据所述目标业务操作消息获取对应的所有目标订阅者,从所述所有订阅者中筛选所述目标订阅者;并将所述目标业务操作消息发送给所述目标订阅者。
7.一种消息处理方法,其特征在于,所述方法应用于包括全局排它锁的流程引擎;其中,所述全局排它锁用于在并行线程处理目标任务时锁定该目标任务;所述方法包括:
获取订阅者配置信息,并根据所述订阅者配置信息生成所有订阅者和第一注册表;
步骤S1:判断所述第一注册表中是否存在刷新标识;其中,所述刷新标识表征所述订阅者配置信息发生了改变;若存在所述刷新标识,则根据变化后的配置信息生成新订阅者;将所述新订阅者纳入所述所有订阅者;
步骤S2:从消息队列中获取目标业务操作消息,并根据所述目标业务操作消息获取对应的所有目标订阅者;其中,所述目标业务操作消息用于指示所述流程引擎将所述目标业务操作消息的内容发送至目标订阅者;从所述所有订阅者中筛选所述目标订阅者,并将所述目标业务操作消息发送给所述目标订阅者;
其中,所述步骤S1与所述步骤S2并行执行;所述全局排它锁在所述步骤S1执行时锁定所述步骤S1,在所述步骤S2执行时锁定所述步骤S2。
8.一种消息处理系统,其特征在于,所述消息处理系统应用于流程引擎;所述消息处理系统包括:目标消息获取模块、配置信息获取模块、刷新标识模块和消息发送模块;
所述配置信息获取模块用于获取订阅者配置信息;其中,所述订阅者配置信息包括所有订阅者信息;
所述配置信息获取模块还用于根据所述订阅者配置信息生成所有订阅者和第一注册表;所述刷新标识模块用于判断所述第一注册表中是否存在刷新标识;其中,所述刷新标识表征所述订阅者配置信息发生了改变;
所述目标消息获取模块用于当第一注册表中不存在所述刷新标识时,从消息队列中获取目标业务操作消息;其中,所述目标业务操作消息用于指示所述流程引擎将所述目标业务操作消息的内容发送至目标订阅者;并根据所述目标业务操作消息获取对应的所有目标订阅者;
所述消息发送模块用于从所述所有订阅者中筛选所述目标订阅者;并将所述目标业务操作消息发送给所述目标订阅者。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行权利要求1-7中任一项所述方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1-7任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211418502.7A CN115454683A (zh) | 2022-11-14 | 2022-11-14 | 消息处理方法、系统、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211418502.7A CN115454683A (zh) | 2022-11-14 | 2022-11-14 | 消息处理方法、系统、电子设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454683A true CN115454683A (zh) | 2022-12-09 |
Family
ID=84295469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211418502.7A Pending CN115454683A (zh) | 2022-11-14 | 2022-11-14 | 消息处理方法、系统、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454683A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030055668A1 (en) * | 2001-08-08 | 2003-03-20 | Amitabh Saran | Workflow engine for automating business processes in scalable multiprocessor computer platforms |
CN101676933A (zh) * | 2008-09-17 | 2010-03-24 | 新奥特(北京)视频技术有限公司 | 一种基于状态变化的流程控制中消息订阅和分发方法 |
CN111813570A (zh) * | 2020-06-09 | 2020-10-23 | 国网山西省电力公司信息通信分公司 | 一种电力物联网的事件驱动型消息交互方法 |
CN114153635A (zh) * | 2021-12-08 | 2022-03-08 | 上海品顺信息科技有限公司 | 消息处理方法、装置、存储介质及计算机设备 |
-
2022
- 2022-11-14 CN CN202211418502.7A patent/CN115454683A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030055668A1 (en) * | 2001-08-08 | 2003-03-20 | Amitabh Saran | Workflow engine for automating business processes in scalable multiprocessor computer platforms |
CN101676933A (zh) * | 2008-09-17 | 2010-03-24 | 新奥特(北京)视频技术有限公司 | 一种基于状态变化的流程控制中消息订阅和分发方法 |
CN111813570A (zh) * | 2020-06-09 | 2020-10-23 | 国网山西省电力公司信息通信分公司 | 一种电力物联网的事件驱动型消息交互方法 |
CN114153635A (zh) * | 2021-12-08 | 2022-03-08 | 上海品顺信息科技有限公司 | 消息处理方法、装置、存储介质及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111095219B (zh) | 使用回收站和版本历史的文件系统时间点还原 | |
US9253265B2 (en) | Hot pluggable extensions for access management system | |
US10831776B2 (en) | On-demand file synchronization | |
US8600363B2 (en) | Synchronization in unified messaging systems | |
US8209437B2 (en) | Personal information management data synchronization | |
US9753954B2 (en) | Data node fencing in a distributed file system | |
US8751442B2 (en) | Synchronization associated duplicate data resolution | |
US20070038680A1 (en) | Management of mobile-device data | |
CN107992537B (zh) | 业务属性传递方法、装置、计算机设备及存储介质 | |
KR20060079078A (ko) | 서버 큐잉 시스템 및 방법 | |
CN112035472B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US9110892B2 (en) | Synchronizing local and remote data | |
US9514176B2 (en) | Database update notification method | |
CN112905323B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US20220222266A1 (en) | Monitoring and alerting platform for extract, transform, and load jobs | |
CN111782456B (zh) | 异常检测方法、装置、计算机设备和存储介质 | |
WO2019195482A9 (en) | Database lock | |
CN113946427A (zh) | 用于多操作系统的任务处理方法、处理器及存储介质 | |
CN112865927B (zh) | 消息送达验证方法、装置、计算机设备和存储介质 | |
CN112506590A (zh) | 接口调用方法、装置及电子设备 | |
CN115454683A (zh) | 消息处理方法、系统、电子设备及计算机可读存储介质 | |
CN115344540A (zh) | 一种文件处理方法、文件校验方法及电子设备 | |
US20140280347A1 (en) | Managing Digital Files with Shared Locks | |
CN111045723B (zh) | 关联系统间的代码变更通知方法、装置 | |
US20240264960A1 (en) | Managing a workspace mesh |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221209 |
|
RJ01 | Rejection of invention patent application after publication |