CN115623019B - 一种分布式运行流调度执行方法和系统 - Google Patents
一种分布式运行流调度执行方法和系统 Download PDFInfo
- Publication number
- CN115623019B CN115623019B CN202211534426.6A CN202211534426A CN115623019B CN 115623019 B CN115623019 B CN 115623019B CN 202211534426 A CN202211534426 A CN 202211534426A CN 115623019 B CN115623019 B CN 115623019B
- Authority
- CN
- China
- Prior art keywords
- message
- execution
- data
- bitmap
- execution result
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 239000012634 fragment Substances 0.000 claims abstract description 40
- 238000012544 monitoring process Methods 0.000 claims description 12
- 239000008280 blood Substances 0.000 claims description 11
- 210000004369 blood Anatomy 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 229910002056 binary alloy Inorganic materials 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 claims description 6
- 239000003795 chemical substances by application Substances 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 5
- 230000002776 aggregation Effects 0.000 claims description 2
- 238000004220 aggregation Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000013467 fragmentation Methods 0.000 description 5
- 238000006062 fragmentation reaction Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 2
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 101100075995 Schizosaccharomyces pombe (strain 972 / ATCC 24843) fma2 gene Proteins 0.000 description 1
- 101100456045 Schizosaccharomyces pombe (strain 972 / ATCC 24843) map3 gene Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及大数据处理技术领域中的一种分布式运行流调度执行方法和系统,包括以下步骤:接收任务触发消息,获取事件报文,解析事件报文得到解析报文,并判断解析报文是否为位图流转;若是位图流转,则获取解析报文内的批次号,基于批次号读取redis中的分片位图,基于分片位图进行执行操作,并得到执行结果数据;若非位图流转,则获取解析报文内的执行数据,并进行窗口汇总处理,得到汇总数据;当窗口触发条件满足时,基于汇总数据进行执行操作,并得到执行结果汇总数据;将执行结果数据以及执行结果汇总数据分别分片式存储在redis内,解决了大规模数据无法实现快速调度执行的问题。
Description
技术领域
本发明涉及大数据处理技术领域,具体涉及一种分布式运行流调度执行方法和系统。
背景技术
在企业数字化背景下,越来越多的数字化系统采用拖拽组件的方式执行运行流任务,这种运行流任务包括不限于风控决策流、营销商机任务编排等运行流场景,其中,营销商机运行流,用于大批量圈选客群与实时捕获客户触点事件,经过多个不同组件的编排构建营销商机运行流实现客户旅程场景全生命周期的营销闭环,风控决策流,不仅用于大批量执行客户的决策流任务,而且用于实时监控客户操作的安全性的实时决策场景中,实现客户的事后、事中监控,在运行流编排中,会对通用的功能进行抽象封装为组件,在营销运行流中包括名单、事件、分流、汇聚、渠道、时机等组件,在风控决策流场景中,包括事件、第三方API、黑名单、白名单、策略、评分卡等风控相关组件,将这些组件进行拖拽组合成一个运行流任务。
在营销场景下,基于用户唯一ID去做营销编排,当用户号规模很大的情况下,节点需要处理大规模的数据,并且下游节点需要去读取上个节点执行返回的大规模数据,如果将大规模的用户号读取在内存中,数据量过大,会导致内存溢出等问题。
除此之外,在事件组件接收的事件并发较高的情况下,会导致运行流节点执行频繁,同步访问数据库导致数据库压力过大,耗时较长。
发明内容
本发明针对现有技术中的缺点,提供了一种分布式运行流调度执行方法和系统,解决了大规模数据无法实现快速调度执行的问题。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种分布式运行流调度执行方法,包括以下步骤:
接收任务触发消息,基于所述任务触发消息获取事件报文,解析所述事件报文,得到解析报文,并判断所述解析报文是否为位图流转;
若是位图流转,则获取所述解析报文内的批次号,基于所述批次号读取redis中的分片位图,基于所述分片位图进行执行操作,并得到执行结果数据,其中,所述批次号与分片位图为唯一对应关系;
若非位图流转,则获取所述解析报文内的执行数据,并进行窗口汇总处理,得到汇总数据;
设定窗口触发条件,当所述窗口触发条件满足时,基于所述汇总数据进行执行操作,并得到执行结果汇总数据;
将所述执行结果数据以及执行结果汇总数据分别分片式存储在redis内,并进行位图序列化备份。
可选的,将所述执行结果数据以及执行结果汇总数据分别分片式存储在redis内,包括以下步骤:
自动生成所述执行结果数据和执行结果汇总数据的批次号;
将所述执行结果数据和执行结果汇总数据分别进行二进制处理,得到多组64位二进制,并基于所述64位二进制生成多组结果位图;
获取redis节点数量,基于所述redis节点数量对所述结果位图进行分组,得到若干组分片位图;
通过一致性算法将若干组所述分片位图以及对应的批次号同时存储到不同的redis节点内。
可选的,基于任务触发消息获取事件报文,包括以下步骤:
判断执行所述任务触发消息的节点是否为定时触发;
若是,则待定时结束后发布事件报文,若否,则立即发布事件报文。
可选的,进行窗口汇总处理,包括以下步骤:
获取非位图流转下,所有所述解析报文的节点ID;
将具有相同节点ID的所述解析报文内的执行数据汇总至同一窗口,得到多组汇总数据。
可选的,所述窗口触发条件为窗口触发时间或窗口触发数量。
可选的,基于所述分片位图进行执行操作,包括以下步骤:
判断执行所述分片位图的节点是否为定时执行;
若是,则待定时结束后,进行执行操作,若否,则立即进行执行操作。
可选的,基于汇总数据进行执行操作,包括以下步骤:
判断执行所述汇总数据的节点是否为定时执行;
若是,则待定时结束后,进行执行操作,若否,则立即进行执行操作。
可选的,还包括以下步骤:
获取所述解析报文内的血缘ID,基于所述血缘ID进行执行操作。
一种分布式运行流调度执行系统,所述分布式运行流调度执行系统使用如上述任意一项所述的分布式运行流调度执行方法,包括任务触发集群、消息队列集群、事件监听消费者、委托代理执行器、组件执行器和redis系统;
所述任务触发集群用于,下发任务触发消息;
所述消息队列集群用于,接收所述任务触发消息,并基于所述任务触发消息推送事件报文,且支持事件报文接收失败后的重复推送;
所述事件监听消费者用于,基于任务触发消息的优先级,分别启动不同优先级的消费监听者接收所述事件报文,解析所述事件报文,得到解析报文,并判断所述解析报文是否为位图流转,其中,所述事件监听消费者包括若干个消费监听者;
所述委托代理执行器用于,根据解析报文调用相应的组件执行器;
所述组件执行器用于,基于所述解析报文进行执行操作,得到执行结果数据或执行结果汇总数据;
所述redis系统用于分片式存储所述执行结果数据以及执行结果汇总数据。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,执行上述任意一项所述的分布式运行流调度执行方法。
采用本发明提供的技术方案,与现有技术相比,具有如下有益效果:
通过位图算法实现运行流中流转数据,即执行结果数据以及执行结果汇总数据的压缩与计算,将结果位图采用分片式存储的方法存储在redis中,提高结果位图的读取速度,另一方面,采用窗口算法对运行流的实时流转数据进行窗口汇总,并保存至位图中,实现运行流中的节点批量执行,提高了节点的执行效率与资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本实施例一提出的一种分布式运行流调度执行方法的流程图;
图2为本实施例二提出的一种分布式运行流调度执行系统的系统流程图。
实施方式
下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
实施例
如图1所示,一种分布式运行流调度执行方法,包括以下步骤:接收任务触发消息,基于任务触发消息获取事件报文,解析事件报文,得到解析报文,并判断解析报文是否为位图流转;其中,基于任务触发消息获取事件报文,包括以下步骤:判断执行任务触发消息的节点是否为定时触发;若是,则待定时结束后发布事件报文,若否,则立即发布事件报文。
具体地,在进行运行流调度执行过程中,首先需要接收一个任务下达命令,作为后续需要进行事件执行的触发,因此,首先接收任务触发消息,而对于该任务触发消息,存在两种情况,一种为节点直接需要立即执行的任务触发消息,即可理解为直接点击开始按钮,而另一种即为定时触发的节点,即对于该任务触发消息而言,不需要立即执行,而是通过设定一定的时间后,再下发任务触发消息,基于此,对于任务触发消息设定为两种模式,即立即触发和定时触发。
当任务触发消息发送到下一节点后,下一节点会根据任务触发消息获取事件报文,并进行解析得到解析报文,其中,解析报文包括活动ID、源节点ID、当前节点ID、上个节点处理批次号、血缘ID、是否位图流转以及用户号列表,从在得到解析报文后,需读取解析报文中的isMapFlow字段,即是否位图流转字段,并基于isMapFlow字段判断该解析报文是否为位图流转,若isMapFlow字段显示为true则表示该解析报文为位图流转,若显示为false则表示该解析报文不是位图流转。
进一步地,若解析报文是位图流转,则获取解析报文内的批次号,基于批次号读取redis中的分片位图,基于分片位图进行执行操作,并得到执行结果数据,其中,批次号与分片位图为唯一对应关系;
具体地,当解析报文为位图流转时,则直接根据解析报文中的批次号,从redis中获取与批次号唯一对应的分片位图,其中,该分片位图即为运行流需要进行的调度执行操作,从而使得在运行流实现调度执行操作前,即事件报文发布、接收、解析等过程中,均不涉及具体的需要执行的大规模数据的发送、接收和读取,而是通过数据量非常小的批次号进行替代,直至正真需要进行执行操作时,再通过批次号读取存储于redis内的处理为分片位图形式的大规模数据实现执行操作,进而大大降低了事件报文发布、接收、解析等过程中的数据处理效率,并提高了调度执行的速度,当各个组件执行器完成执行操作后,获取完成执行操作后的所有数据,即执行结果数据。
其中,基于分片位图进行执行操作,包括以下步骤:判断执行分片位图的节点是否为定时执行;若是,则待定时结束后,进行执行操作,若否,则立即进行执行操作,具体地,由于当判断出解析报文后,该分片位图的内容存在两种情况,一种为需要组件执行器立即进行执行操作,另一种为需要等待一定时间后,组件执行器再进行执行操作,因此在得到分片位图的数据后,还设置了定时动作,以便提高组件执行器的实际操作的灵活性。
进一步地,若非位图流转,则获取解析报文内的执行数据,并进行窗口汇总处理,得到汇总数据;其中,进行窗口汇总处理,包括以下步骤:获取非位图流转下,所有解析报文的节点ID;将具有相同节点ID的解析报文内的执行数据汇总至同一窗口,得到多组汇总数据
若解析报文并非位图流转,则代表该解析报文所要最终执行的操作所占的数据量较小,可直接执行操作,不影响整个系统的运行速率,此时,为充分利用各个节点的性能资源,需要对所有接收到的具有相同节点ID的解析报文汇总到相同窗口,从而使得节点ID能够一次性处理多条数量较小的解析报文,最大化节点ID的处理能力,而汇总到相同窗口的解析报文内的执行数据的集合,即为汇总数据。
进一步地,设定窗口触发条件,当窗口触发条件满足时,基于汇总数据进行执行操作,并得到执行结果汇总数据,其中,窗口触发条件为窗口触发时间或窗口触发数量,即,在进行窗口汇总处理时,窗口处理汇总地原则除同一节点ID外,还需要确保窗口内的解析报文数量,即窗口触发数量不能超过该节点ID的最大处理数量,或当到达该节点ID的数据处理时间时,即窗口触发事件,后续接收到的解析报文即使存在相同的节点ID,依然不再划分在同一个窗口内,然后,根据该窗口内的汇总数据的内容,组件执行器进行执行操作,并在完成后产生执行结果汇总数据。
其中,基于汇总数据进行执行操作,包括以下步骤:判断执行汇总数据的节点是否为定时执行;若是,则待定时结束后,进行执行操作,若否,则立即进行执行操作,具体地,由于得到汇总数据后,该汇总数据的内容存在两种情况,一种为需要组件执行器立即进行执行操作,另一种为需要等待一定时间后,组件执行器再进行执行操作,因此在得到分片位图的数据后,还设置了定时动作,以便提高组件执行器的实际操作的灵活性。
最后,将执行结果数据以及执行结果汇总数据分别分片式存储在redis内,并进行位图序列化备份,具体地,包括以下步骤:自动生成执行结果数据和执行结果汇总数据的批次号;将执行结果数据和执行结果汇总数据分别进行二进制处理,得到多组64位二进制,并基于64位二进制生成多组结果位图;获取redis节点数量,基于redis节点数量对结果位图进行分组,得到若干组分片位图;通过一致性算法将若干组分片位图以及对应的批次号同时存储到不同的redis节点内。
为丰富redis内存储的需要调度执行的数据更为丰富完整,因此,需要将每一次调度执行之后所产生的数据通过分片式存储的方式存储在redis内,以便后续继续通过批次号在redis内读取到对应的执行数据,具体的,首先需要将执行结果数据和执行结果汇总数据均转化为二进制表示,得到64位的二进制数据,然后将转化为二进制的数据生成结果位图,而结果位图的存储格式为Map<Interger,RoarBitmap>,其中Interger为二进制数据的高32位,将高32位一致的二进制数据存储在同一个RoarBitmap位图中,然后根据redis节点数量,得到压缩位图的分片数,其中,分片数即为redis节点数量,确定分片数后,通过高32位与分片数取模计算,实现结果位图的分组,得到若干组分片位图,然后采用哈希一致性算法,将分片位图以及对应的批次号存储到redis的各个节点内,实现分片存储的平衡,同时通过位图序列化备份,使得当redis出现异常时,数据不会丢失泄露。
例如,本实施例以redis节点数量为3,执行结果数据有999组为例,此时,对执行结果数据二进制处理后,得到999组的64位二进制数据,由于redis节点数量为3,因此需要将这999组64位二进制数据分别存入3个redis节点中,而为平衡三个redis节点的存储量,将999组64位二进制数据中高32位排前333名划分为一组,中间333组划分为一组以及最后333组划分为一组,此时,得到分片位图分别为Map1<Interger,RoarBitmap>、Map2<Interger,RoarBitmap>、Map3<Interger,RoarBitmap>,最后将三组分片位图按照不同的分片key存储到redis中,按照redis的一致性算法,平衡到不同的redis节点中,其中,key即代表批次号_1、批次号_2和批次号_3。
另一方面,还包括以下步骤:获取解析报文内的血缘ID,基于血缘ID进行执行操作,运行流在进行调度执行过程中,还存在所需要执行各个节点之间存在血缘关系的情况,此时无需进行位图判断,可直接通过血缘ID实现组件执行器的执行操作。
实施例
如图2所示,一种分布式运行流调度执行系统,分布式运行流调度执行系统使用如实施例一任意一项所述的分布式运行流调度执行方法,包括任务触发集群、消息队列集群、事件监听消费者、委托代理执行器、组件执行器和redis系统;任务触发集群用于,下发任务触发消息;消息队列集群用于,接收任务触发消息,并基于任务触发消息推送事件报文,且支持事件报文接收失败后的重复推送;事件监听消费者用于,基于任务触发消息的优先级,分别启动不同优先级的消费监听者接收事件报文,解析事件报文,得到解析报文,并判断解析报文是否为位图流转,其中,所述事件监听消费者包括若干个消费监听者;委托代理执行器用于,根据解析报文调用相应的组件执行器;组件执行器用于,基于解析报文进行执行操作,得到执行结果数据或执行结果汇总数据;redis系统用于分片式存储执行结果数据以及执行结果汇总数据。
具体地,通过抽象与封装,开发相应的组件执行器,包括不限于名单、事件、汇聚、分流、渠道组件;按照任务等级开启多个消息队列的公共消费监听器,即消息监听者,实现组件消息的监听,同时,如果消息消费失败,支持事件监听消费者的消费重试;通过对组件执行器拖拽实现组件间连线完成运行流任务的编排,当运行流审核通过后开始执行运行流任务,解析运行流任务前后节点关系,并缓存至redis中。
进一步地,首先执行开始节点,从缓存中读取与开始节点连接的节点信息并组装消息按照任务等级发送消息至消息队列不同的topic中。
公共消费监听器监听到消息队列中的事件报文,解析事件报文,读取报文中的节点ID以及根据消息ID获取缓存分片位图,根据节点ID调用相应节点的执行函数,实现当前节点执行;如果当前节点是需要定时执行的,则通过任务触发集群创建动态定时任务,由定时任务再次触发消息往后流转。
执行完成,如果当前执行结果存在业务字段信息,则生成血缘ID,并将血缘ID与业务字段保存至数据库中;执行完成的结果数据通过分片式存储的方式写入到redis中,并继续向下发送事件报文,重复执行上述步骤,直到节点全部事件执行完毕,不再往后流转消息则结束。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,执行实施例一任意一项所述的分布式运行流调度执行方法。
计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线段的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线段、电线段、光缆、RF等等,或者上述的任意合适的组合。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块、模组或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元、模组或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。
所述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线段、或半导体的系统、装置或器件,或者任意以上的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种分布式运行流调度执行方法,其特征在于,包括以下步骤:
接收任务触发消息,基于所述任务触发消息获取事件报文,解析所述事件报文,得到解析报文,并判断所述解析报文是否为位图流转;
若是位图流转,则获取所述解析报文内的批次号,基于所述批次号读取redis中的分片位图,基于所述分片位图进行执行操作,并得到执行结果数据,其中,所述批次号与分片位图为唯一对应关系;
若非位图流转,则获取所述解析报文内的执行数据,并进行窗口汇总处理,得到汇总数据;
设定窗口触发条件,当所述窗口触发条件满足时,基于所述汇总数据进行执行操作,并得到执行结果汇总数据;
将所述执行结果数据以及执行结果汇总数据分别分片式存储在redis内,并进行位图序列化备份。
2.根据权利要求1所述的一种分布式运行流调度执行方法,其特征在于,将所述执行结果数据以及执行结果汇总数据分别分片式存储在redis内,包括以下步骤:
自动生成所述执行结果数据和执行结果汇总数据的批次号;
将所述执行结果数据和执行结果汇总数据分别进行二进制处理,得到多组64位二进制,并基于所述64位二进制生成多组结果位图;
获取redis节点数量,基于所述redis节点数量对所述结果位图进行分组,得到若干组分片位图;
通过一致性算法将若干组所述分片位图以及对应的批次号同时存储到不同的redis节点内。
3.根据权利要求1所述的一种分布式运行流调度执行方法,其特征在于,基于任务触发消息获取事件报文,包括以下步骤:
判断执行所述任务触发消息的节点是否为定时触发;
若是,则待定时结束后发布事件报文,若否,则立即发布事件报文。
4.根据权利要求1所述的一种分布式运行流调度执行方法,其特征在于,进行窗口汇总处理,包括以下步骤:
获取非位图流转下,所有所述解析报文的节点ID;
将具有相同节点ID的所述解析报文内的执行数据汇总至同一窗口,得到多组汇总数据。
5.根据权利要求4所述的一种分布式运行流调度执行方法,其特征在于,所述窗口触发条件为窗口触发时间或窗口触发数量。
6.根据权利要求1所述的一种分布式运行流调度执行方法,其特征在于,基于所述分片位图进行执行操作,包括以下步骤:
判断执行所述分片位图的节点是否为定时执行;
若是,则待定时结束后,进行执行操作,若否,则立即进行执行操作。
7.根据权利要求1所述的一种分布式运行流调度执行方法,其特征在于,基于汇总数据进行执行操作,包括以下步骤:
判断执行所述汇总数据的节点是否为定时执行;
若是,则待定时结束后,进行执行操作,若否,则立即进行执行操作。
8.根据权利要求1所述的一种分布式运行流调度执行方法,其特征在于,还包括以下步骤:
获取所述解析报文内的血缘ID,基于所述血缘ID进行执行操作。
9.一种分布式运行流调度执行系统,其特征在于,所述分布式运行流调度执行系统使用如权利要求1-8任意一项所述的分布式运行流调度执行方法,包括任务触发集群、消息队列集群、事件监听消费者、委托代理执行器、组件执行器和redis系统;
所述任务触发集群用于,下发任务触发消息;
所述消息队列集群用于,接收所述任务触发消息,并基于所述任务触发消息推送事件报文,且支持事件报文接收失败后的重复推送;
所述事件监听消费者用于,基于任务触发消息的优先级,分别启动不同优先级的消费监听者接收所述事件报文,解析所述事件报文,得到解析报文,并判断所述解析报文是否为位图流转,其中,所述事件监听消费者包括若干个消费监听者;
所述委托代理执行器用于,根据解析报文调用相应的组件执行器;
所述组件执行器用于,基于所述解析报文进行执行操作,得到执行结果数据或执行结果汇总数据;
所述redis系统用于分片式存储所述执行结果数据以及执行结果汇总数据。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,执行权利要求1-8任意一项所述的分布式运行流调度执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211534426.6A CN115623019B (zh) | 2022-12-02 | 2022-12-02 | 一种分布式运行流调度执行方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211534426.6A CN115623019B (zh) | 2022-12-02 | 2022-12-02 | 一种分布式运行流调度执行方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115623019A CN115623019A (zh) | 2023-01-17 |
CN115623019B true CN115623019B (zh) | 2023-03-21 |
Family
ID=84880428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211534426.6A Active CN115623019B (zh) | 2022-12-02 | 2022-12-02 | 一种分布式运行流调度执行方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115623019B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118093147A (zh) * | 2024-04-29 | 2024-05-28 | 浙江农商数字科技有限责任公司 | 一种基于任务链和分治法的海量数据汇总方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527525A (zh) * | 2020-12-11 | 2021-03-19 | 广州伊智信息科技有限公司 | 基于消息队列的分布式事件总线处理方法、终端及介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9317343B1 (en) * | 2008-03-28 | 2016-04-19 | Amazon Technologies, Inc. | Centralized processing of events |
CN106708865B (zh) * | 2015-11-16 | 2020-04-03 | 杭州华为数字技术有限公司 | 流处理系统中访问窗口数据的方法和装置 |
US10120888B2 (en) * | 2016-08-08 | 2018-11-06 | American Express Travel Related Services Company, Inc. | Automated task execution based on task criteria |
US10430232B2 (en) * | 2016-09-16 | 2019-10-01 | Oracle International Corporation | Controllable workflow in software configuration automation |
CN108509592B (zh) * | 2018-03-30 | 2022-11-29 | 贵阳朗玛信息技术股份有限公司 | 基于Redis的数据存储方法、读取方法及装置 |
US20200341997A1 (en) * | 2019-04-29 | 2020-10-29 | Instant Labs, Inc. | Optimized data access |
CN113886089B (zh) * | 2021-10-21 | 2024-01-26 | 上海勃池信息技术有限公司 | 一种任务处理方法、装置、系统、设备及介质 |
CN114924857A (zh) * | 2022-05-26 | 2022-08-19 | 中国平安人寿保险股份有限公司 | 基于Redis的分布式定时调度方法、装置及存储介质 |
CN114968124A (zh) * | 2022-06-28 | 2022-08-30 | 深圳前海微众银行股份有限公司 | 数据存储方法、服务器和存储介质 |
-
2022
- 2022-12-02 CN CN202211534426.6A patent/CN115623019B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527525A (zh) * | 2020-12-11 | 2021-03-19 | 广州伊智信息科技有限公司 | 基于消息队列的分布式事件总线处理方法、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115623019A (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110502494B (zh) | 日志处理方法、装置、计算机设备及存储介质 | |
CN109104336B (zh) | 服务请求处理方法、装置、计算机设备及存储介质 | |
CN105677469B (zh) | 定时任务执行方法及装置 | |
CN115623019B (zh) | 一种分布式运行流调度执行方法和系统 | |
CN109842621B (zh) | 一种减少token存储数量的方法及终端 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN113596078A (zh) | 业务问题定位方法及装置 | |
CN112182043A (zh) | 日志数据查询方法、装置、设备及存储介质 | |
CN113127225A (zh) | 一种数据处理任务的调度方法、装置和系统 | |
CN111553652A (zh) | 业务处理方法及装置 | |
EP3945420A1 (en) | Method and apparatus for data processing, server and storage medium | |
CN113422808B (zh) | 物联网平台http信息推送方法、系统、装置及介质 | |
CN113746883B (zh) | 链路跟踪方法及系统 | |
CN112380001A (zh) | 日志输出方法、负载均衡设备及计算机可读存储介质 | |
CN109067864B (zh) | 通知消息推送方法、装置及电子设备 | |
CN110750362A (zh) | 生物信息的分析方法、装置和存储介质 | |
CN110825342B (zh) | 存储调度器件和用于处理信息的系统、方法及装置 | |
CN113946446A (zh) | 基于消息队列统一处理用户任务的方法 | |
CN113742099A (zh) | 基于集合的消息消费方法、生产方法、系统及存储介质 | |
CN113709214A (zh) | 消息处理方法及装置、电子设备及存储介质 | |
CN112131267A (zh) | 计数处理方法、装置、服务器和计数处理系统 | |
CN112035316A (zh) | 一种云监控系统监控分析数据的方法 | |
CN114629734B (zh) | 话单处理方法、设备、系统及存储介质 | |
CN116089123A (zh) | 一种消息触达的方法及系统 | |
CN113760570A (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A distributed runtime flow scheduling execution method and system Granted publication date: 20230321 Pledgee: Industrial and Commercial Bank of China Limited Hangzhou Zhijiang Branch Pledgor: HANGZHOU YATUO INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2024330000803 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |