CN114327818B - 一种算法调度方法、装置、设备及可读存储介质 - Google Patents
一种算法调度方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114327818B CN114327818B CN202111595235.6A CN202111595235A CN114327818B CN 114327818 B CN114327818 B CN 114327818B CN 202111595235 A CN202111595235 A CN 202111595235A CN 114327818 B CN114327818 B CN 114327818B
- Authority
- CN
- China
- Prior art keywords
- algorithm
- event
- processed
- business
- service
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 459
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000012545 processing Methods 0.000 claims abstract description 162
- 238000005538 encapsulation Methods 0.000 claims description 5
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012827 research and development Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种算法调度方法、装置、设备及可读存储介质。可接收请求者发送的业务数据并将所述业务数据封装成待处理的业务事件后,可调用事件循环驱动引擎将待处理的业务事件发送至算法处理器;继而可调用算法处理器在预设的算法链集合中确定与待处理的业务事件匹配的算法链,来处理待处理的业务事件,得到待处理的业务事件的处理结果;再将所述处理结果反馈给所述请求者。本申请可将算法进行统一管理,通过事件循环驱动引擎来完成对待处理的业务事件的调度,可以根据业务事件来确定对应的算法链来完成对业务事件的处理,可以有效实现算法复用,有效解决了算法兼容困难的问题,进一步的,还可以简化算法研发的成本,提高业务事件的处理效率。
Description
技术领域
本申请涉及互联网技术领域,更具体地说,涉及一种算法调度方法、装置、设备及可读存储介质。
背景技术
随着移动互联网的快速发展,不同行业、不同规模的单位、企业之间构建基于互联网的跨界融合合作成为发展趋势。很多企业的业务由单一业务变成复杂多变的业务,各合作方所产生的业务数据也非常庞大且复杂。对于海量的业务数据的计算、处理,是由诸多不同的算法来执行,同时不同的算法有不同的执行环境;同时对于业务数据计算、处理所需要的算法执行平台的灵活性、高可用性的需求也日益增强。
当遇到新的业务场景,有时候有些算法是可以复用的,但是,当将可复用过往的算法来处理新的业务数据时,尤其是多项新旧业务合并,产生新的业务数据时,算法兼容成了棘手的问题,甚至发生了因算法导致宕机的问题。为了使得业务数据能顺利被处理,只能另外针对新的业务数据来开发新的算法,这就导致算法开发成本升高。如何实现算法兼容,降低算法研发成本,提高业务数据的处理效率,是大部分互联网公司的一个痛点。
因此,亟需一种可以实现科学调度的算法管理方案,用于解决在业务数据处理中算法兼容及处理难的问题。
发明内容
有鉴于此,本申请提供了一种算法调度方法、装置、设备及可读存储介质,用于解决在业务数据处理中算法兼容及处理难的问题。
一种算法调度方法,包括:
接收请求者发送的业务数据并输入处理器进行封装,得到待处理的业务事件后保存至事件循环驱动引擎;
调用所述事件循环驱动引擎将所述待处理的业务事件发送至算法处理器;
调用所述算法处理器在预设的算法链集合中确定与所述待处理的业务事件匹配的算法链,来处理所述待处理的业务事件,得到所述待处理的业务事件的处理结果,其中,所述算法链集合中包含至少一条算法链,每条算法链包含至少一个算法单元;
将所述处理结果反馈给所述请求者。
优选地,所述待处理的业务事件包含至少一个子业务事件,每个子业务事件对应一个算法链标识,基于此,所述调用所述算法处理器在预设的算法链集合中确定与所述待处理的业务事件匹配的算法链,来处理所述待处理的业务事件,得到所述待处理的业务事件的处理结果,包括:
调用所述算法处理器,识别所述待处理的业务事件的所有子业务事件对应的算法链标识,其中,每一个算法链标识对应一个算法链;
在预设的算法链集合中确定与每一子业务事件的算法链标识对应的算法链,以处理各个子业务事件,得到各个子业务事件的处理结果。
优选地,所述在预设的算法链集合中确定与每一子业务事件的算法链标识对应的算法链,以处理各个子业务事件,得到各个子业务事件的处理结果,包括:
依据所述待处理的业务事件的各个子业务事件的处理逻辑,将所述待处理的业务事件中处理顺序排在首个的子业务事件作为当前处理的业务事件,在预设的算法链集合中确定与所述当前处理的业务事件对应的算法链标识匹配的算法链,来处理所述当前处理的业务事件,得到所述当前处理的业务事件的处理结果;
将所述当前处理的业务事件的处理结果与所述待处理的业务事件中未处理的子业务事件重新封装成待处理的业务事件后,保存至所述事件循环驱动引擎;
调用所述事件循环驱动引擎将所述待处理的业务事件发送至所述算法处理器;
返回执行调用所述算法处理器,识别所述待处理的业务事件的所有子业务事件对应的算法链标识,及依据所述待处理的业务事件的各个子业务事件的处理逻辑,将所述待处理的业务事件中处理顺序排在首个的子业务事件作为当前处理的业务事件,在预设的算法链集合中确定与所述当前处理的业务事件对应的算法链标识匹配的算法链,来处理所述当前处理的业务事件,得到所述当前处理的业务事件的处理结果的步骤,直至得到待处理的业务事件中各个子业务事件的处理结果。
优选地,所述将所述处理结果反馈给所述请求者,包括:
调用所述算法处理器将所述待处理的业务事件处理结果发送给所述事件循环驱动引擎;
调用所述事件循环驱动引擎将所述待处理的业务事件的处理结果反馈给所述请求者。
优选地,所述算法链的创建过程,包括:
配置与业务事件对应的算法单元;
依据业务事件的处理逻辑,将所述算法单元组成与业务事件对应的算法链后保存在所述算法链集合中。
优选地,若所述算法链集合中不存在与所述待处理的业务事件对应的算法链,该方法还包括:
判断所述算法链集合中是否存在与所述待处理的业务事件对应的所有的算法单元;
若所述算法链集合中存在与所述待处理的业务事件对应的所有的算法单元,则将所述算法链集合中与所述待处理的业务事件对应的所有的算法单元按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中;
若所述算法链集合中只存在部分与所述待处理的业务事件对应的算法单元,则配置所缺少的与所述待处理的业务事件对应的算法单元,并将所述算法链集合中与所述待处理的业务事件对应的算法单元,及配置的与所述待处理的业务事件对应的算法单元,按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中;
若所述算法链集合中不存在与所述待处理的业务事件对应的算法单元,则配置与所述待处理的业务事件对应的算法单元,并将所述与所述待处理的业务事件对应的算法单元,按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中。
一种算法调度装置,包括:
封装单元,用于接收请求者发送的业务数据并输入处理器进行封装,得到待处理的业务事件后保存至事件循环驱动引擎;
第一调用单元,用于调用所述事件循环驱动引擎将所述待处理的业务事件发送至算法处理器;
第二调用单元,用于调用所述算法处理器在预设的算法链集合中确定与所述待处理的业务事件匹配的算法链,来处理所述待处理的业务事件,得到所述待处理的业务事件的处理结果,其中,所述算法链集合中包含至少一条算法链,每条算法链包含至少一个算法单元;
反馈单元,用于将所述处理结果反馈给所述请求者。
优选地,所述第一调用单元,包括:
识别单元,用于调用所述算法处理器,识别所述待处理的业务事件的所有子业务事件对应的算法链标识,其中,每一个算法链标识对应一个算法链;
事件处理单元,用于在预设的算法链集合中确定与每一子业务事件的算法链标识对应的算法链,以处理各个子业务事件,得到各个子业务事件的处理结果。
一种算法调度设备,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如前述介绍中任一项的算法调度方法的各个步骤。
一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如前述介绍中任一项的算法调度方法的各个步骤。
从上述技术方案可以看出,本申请可以接收请求者发送的业务数据并输入处理器进行封装,得到待处理的业务事件后保存至事件循环驱动引擎。在将所述业务数据封装成所述待处理的业务事件后,可以调用所述事件循环驱动引擎将所述待处理的业务事件发送至算法处理器;继而可以调用所述算法处理器在预设的算法链集合中确定与所述待处理的业务事件匹配的算法链,来处理所述待处理的业务事件,得到所述待处理的业务事件的处理结果,其中,所述算法链集合中包含至少一条算法链,每条算法链包含至少一个算法单元;在所述算法处理器对所述待处理的业务事件进行处理后,再将所述处理结果反馈给所述请求者。本申请可以将算法进行统一管理,通过所述事件循环驱动引擎来完成对所述待处理的业务事件的调度,可以根据业务事件来确定对应的算法链来完成对业务事件的处理,可以有效实现算法复用,有效解决了算法兼容困难的问题,进一步的,还可以简化算法研发的成本,提高业务事件的处理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1-图5为本申请实施例示例的一种可选的算法调度方法的流程图。
图6为本申请实施例示例的一种算法调度装置结构示意图;
图7为本申请实施例公开的一种算法调度设备的硬件结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,互联网发展飞快,各行各业都有海量的业务数据需要处理,对于海量的业务数据的计算、处理对算法执行环境和条件的要求非常高。因此,亟需一套高兼容性的算法执行方案,以便可以提供兼容性强的算法单元的实时运行环境,及能够动态加载各类算法单元、并执行算法单元的算法操作。用于解决不同类型算法之间的组合、热加载算法等问题。
为此,本申请提供了一种算法调度方案,旨在解决不同类型算法之间的组合、热加载算法等问题。
本申请可以应用于任意一种可以实现算法调度的设备中,可选的,可以实现算法调度的设备可以是平板电脑、手机、数字电视等具有数据处理能力的终端。
下面结合图1,介绍本申请实施例给出的可以实现算法调度方法的流程,如图1所示,该流程可以包括如下几个步骤:
步骤S101,接收请求者发送的业务数据并输入处理器进行封装,得到待处理的业务事件后保存至事件循环驱动引擎。
具体地,在进行数据处理之前,可以接收请求者发送的业务数据,其中,所述业务数据可以是各种类型的数据,例如,业务数据可以是来源于关系型数据库的结构化的数据、非关系型数据库的图片类的二进制数据、视频或音频类的二进制数据等。
在接收到请求者发送的业务数据后,可以输入处理器进行事件封装处理后保存至事件循环驱动引擎中。以便可以将业务数据封装成待处理业务事件,有助于更好地对业务数据进行处理。
其中,输入处理器是算法数据的输入端抽象接口。可根据需求来定义匹配的InputHandler规范,以便可以兼容匹配不同类型的数据输入端。
例如,在实际应用中,如果需要扩展输入接口,只需要按需求配置好InputHandler规范,即可扩展多一种输入接口。
其中,常见的数据输入源有:数据库、HTTP请求、消息队列(MQ)、分布式文件系统、缓存等。
步骤S102,调用所述事件循环驱动引擎将所述待处理的业务事件发送至算法处理器。
具体地,所述事件循环驱动引擎可以统一指挥各类待处理的业务事件的执行。将封装好的待处理业务事件保存在所述事件循环驱动引擎可以解除各个算法处理模块之间的直接依赖,各算法处理模块只需要关心自身需要处理业务事件的内容以及向所述事件反馈循环驱动引擎关于待处理业务事件的信息即可,这能让开发工作拆分更细、更小,有助于提高算法研发的效率及降低算法研发的成本。
所述事件循环驱动引擎接收到待处理的业务事件后可以发送至算法处理器进行下一步处理。
在本步骤中,所述事件循环驱动引擎并不会直接对所述待处理的业务事件进行处理,而是发送至专门处理待处理的业务事件的算法处理器进行处理。这样可以使得各个模块之间分工明确,提高算法运行的效率。
步骤S103,调用所述算法处理器在预设的算法链集合中确定与所述待处理的业务事件匹配的算法链,来处理所述待处理的业务事件,得到所述待处理的业务事件的处理结果。
其中,所述算法链集合中包含至少一条算法链,每条算法链包含至少一个算法单元。
具体地,在所述事件循环驱动引擎将所述待处理的业务事件发送至所述算法处理器后,可以调用所述算法处理器预设的算法链集合中确定择与所述待处理的业务事件匹配的算法链,来处理所述待处理的业务事件,得到所述待处理的业务事件的处理结果。其中,所述算法处理器中有预设的算法链集合,所述算法链集合中包含至少一条算法链,每条算法链包含至少一个算法单元,因此,所述算法处理器可以处理不同类型的业务事件。
其中,预设的算法链的创建过程可以如下:
步骤S1,配置与业务事件对应的算法单元。
步骤S2,依据业务事件的处理逻辑,将所述算法单元组成与业务事件对应的算法链后保存在所述算法链集合中。
步骤S104,将所述处理结果反馈给所述请求者。
具体地,在所述算法处理器对所述待处理的业务事件进行处理得到所述待处理的业务事件的处理结果后,可以通过输出处理器将所述处理结果反馈给所述请求者。输出处理器可以是算法执行结果的输出端抽象接口。可根据需求来定义输出处理器的输出接口规范,以便可以兼容适配不同的输出端。
例如,在实际应用中,如果需要扩展输出接口,只需要实现OutputHandler的规范,即可扩展多一种输出接口。常见的数据输出方式有:HTTP响应、消息队列(MQ)、数据库、分布式文件系统、缓存等。
从上述技术方案可以看出,本申请实施例可以将所有的算法统一进行管理,通过所述事件循环驱动引擎来完成对所述待处理的业务事件的调度,可以根据业务事件来确定对应的算法链来完成对业务事件的处理,可以有效实现算法复用,有效解决了算法兼容困难的问题,进一步的,还可以简化算法研发的成本,提高业务事件的处理效率。
由上述介绍可知,在调用所述事件循环驱动引擎将所述待处理的业务事件发送至算法处理器后,所述算法处理器可以对待处理的业务事件进行处理。接下来,结合图2,对本申请实施例的步骤S103,所述调用所述算法处理器在预设的算法链集合中确定与所述待处理的业务事件匹配的算法链,来处理所述待处理的业务事件,得到所述待处理的业务事件的处理结果的过程进行介绍。
所述待处理的业务事件包含至少一个子业务事件,每个子业务事件对应一个算法链标识,基于此,该过程可以包括如下几个步骤:
步骤S201,调用所述算法处理器,识别所述待处理的业务事件的所有子业务事件对应的算法链标识。
其中,每一个算法链标识对应一个算法链。
具体地,由上述介绍可知,待处理的业务事件包含至少一个子业务事件,每个子业务事件对应一个算法链标识,因此,可以调用所述算法处理器,识别所述待处理的业务事件的所有子业务事件对应的算法链标识,以便可以在预设的算法链集合里确定与所述待处理的业务事件的各个子业务事件的算法链。
步骤S202,在预设的算法链集合中确定与每一子业务事件的算法链标识对应的算法链,以处理各个子业务事件,得到各个子业务事件的处理结果。
具体地,在确定所述待处理的业务事件的所有子业务事件对应的算法链标识之后,可以在预设的算法链集合中确定与每一子业务事件的算法链标识对应的算法链,以处理各个子业务事件,得到各个子业务事件的处理结果。
其中,算法处理器是算法执行层的结构。其中主要包括:算法执行器、算法链、算法单元。而算法链可以由1个或者多个算法单元组成;算法执行器,可以根据业务事件中的算法链标识来选择一条与所述算法链标识匹配的算法链来执行待处理业务事件的处理。
从上述技术方案可以看出,本申请实施例可以识别所述待处理业务事件中的算法链标识后,在预设的算法链集合中确定与所述算法链标识对应的算法链来处理所述待处理的业务事件。从而得到所述待处理的业务事件的处理结果。
在实际应用过程中,很多业务数据往往比较复杂,被封装后的业务事件中通常是包括多个子业务事件。由上述介绍可知,本申请实施例可以在预设的算法链集合中确定与每一子业务事件的算法链标识对应的算法链,以处理各个子业务事件,得到各个子业务事件的处理结果,接下来,结合图3介绍该过程,如图3所示,该过程可以包括如下几个步骤:
步骤S301,调用所述算法处理器,识别所述待处理的业务事件的所有子业务事件对应的算法链标识。
具体地,本步骤与上述步骤S201相互对应,详情参见上述介绍,此处不再赘述。
步骤S302,依据所述待处理的业务事件的各个子业务事件的处理逻辑,将所述待处理的业务事件中处理顺序排在首个的子业务事件作为当前处理的业务事件,在预设的算法链集合中确定与所述当前处理的业务事件对应的算法链标识匹配的算法链,来处理所述当前处理的业务事件,得到所述当前处理的业务事件的处理结果。
具体地,一般来说,所述待处理的业务事件具有处理逻辑,由上述介绍可知,所述待处理业务事件有可能包括至少一个子业务事件。可以依据所述待处理的业务事件的处理逻辑来依次处理待处理的业务事件中的各个子业务事件。因此,可以依据所述待处理的业务事件的各个子业务事件的处理逻辑,将所述待处理的业务事件中处理顺序排在首个的子业务事件作为当前处理的业务事件,在预设的算法链集合中确定与所述当前处理的业务事件对应的算法链标识匹配的算法链,来处理所述当前处理的业务事件,得到所述当前处理的业务事件的处理结果。
步骤S303,将所述当前处理的业务事件的处理结果与所述待处理的业务事件中未处理的子业务事件重新封装成待处理的业务事件后,保存至所述事件循环驱动引擎。
具体地,若所述待处理业务事件包括多个子业务事件,在处理完首个子业务事件后,当处理完待处理业务事件中的一个子业务事件后,可以将所述当前处理的业务事件的处理结果与所述待处理的业务事件中未处理的子业务事件重新封装成待处理的业务事件后,保存至所述事件循环驱动引擎。
步骤S304,调用所述事件循环驱动引擎将所述待处理的业务事件发送至所述算法处理器。
步骤S305,判断所述待处理的业务事件的所有子业务之间是否被处理完成。
具体地,若所述待处理业务事件包括多个子业务事件,在处理完首个子业务事件,可以判断所述待处理的业务事件的所有子业务之间是否被处理完成,若是则返回执行步骤S301,调用所述算法处理器,识别所述待处理的业务事件的所有子业务事件对应的算法链标识,及依据所述待处理的业务事件的各个子业务事件的处理逻辑,将所述待处理的业务事件中处理顺序排在首个的子业务事件作为当前处理的业务事件,在预设的算法链集合中确定与所述当前处理的业务事件对应的算法链标识匹配的算法链,来处理所述当前处理的业务事件,得到所述当前处理的业务事件的处理结果,直至得到待处理的业务事件中各个子业务事件的处理结果。若否,则执行步骤S306。
步骤S306,结束对所述待处理的业务事件的处理,得到待处理的业务事件中各个子业务事件的处理结果。
从上述技术方案可以看出,当所述待处理的业务事件中包括一个或多个子业务事件时,本申请实施例可以基于所述待处理的业务事件的处理逻辑,来依次调用与所述待处理的业务事件的子业务事件的算法链标识对应的算法链处理待处理的业务事件的各个子业务。从而得到所述待处理业务事件的处理结果。
在实际运用过程中,对请求者发送的业务数据进行处理后,往往需要把对业务数据的处理结果反馈给所述请求者。由上述介绍可知,本申请实施例可以在所述算法处理器处理完所述待处理的业务事件之后,将所述待处理的业务事件的处理结果反馈给所述请求者,接下来,结合图4,对该过程进行介绍,如图4所示,该过程可以包括如下几个步骤:
步骤S401,调用所述算法处理器将所述待处理的业务事件处理结果发送给所述事件循环驱动引擎。
具体地,在所述算法处理器处理完所述待处理业务事件的所有子业务事件后,可以调用所述算法处理器将所述待处理的业务事件处理结果发送给所述事件循环驱动引擎。对于算法处理器来说,只负责处理待处理的业务事件即可。
步骤S402,调用所述事件循环驱动引擎将所述待处理的业务事件的处理结果反馈给所述请求者。
具体地,在将所述待处理业务事件的处理结果发送给所述件循环驱动引擎之后,可以调用所述事件循环驱动引擎将所述待处理的业务事件的处理结果反馈给所述请求者。
从上述技术方案可以看出,本申请实施例可以通过调用所述事件循环驱动引擎将所述待处理的业务事件的处理结果反馈给所述请求者。对于算法处理器来说,只负责处理待处理的业务事件即可,而所述事件循环驱动引擎充当一个调度者的角色,不仅可以将待处理的业务事件分配给算法处理器进行处理,还可以将待处理的业务事件的处理结果反馈给请求者。实现各个模块分工明确,提高了业务数据的处理效率。
在实际应用过程中,考虑到若预设的算法链集合中不存在与请求者发送的业务事件对应的算法链,那么对请求者发送的请求的业务数据的处理过程也会不一样,接下来,结合图5,介绍当所述算法链集合中不存在与所述待处理的业务事件对应的算法链时,实现算法调度方法的另一种实现方式。如图5所示,该过程可以包括如下几个步骤:
步骤S501,判断所述算法链集合中是否存在与所述待处理的业务事件对应的所有的算法单元。
具体地,本方案中将所有的算法链单独保存在算法处理器中,除了可以更好地分工之外,还可以实现对各类算法的管理及循环利用各个算法。因此,若预设的算法链集合中不存在与请求者发送的业务事件对应的算法链时,可以先判断所述算法链集合中是否存在与所述待处理的业务事件对应的所有的算法单元。以便可以判断是否需要重新配置与所述待处理的业务事件对应的算法单元。若所述算法链集合中存在与所述待处理的业务事件对应的所有的算法单元,则执行步骤S502;若所述算法链集合中只存在部分与所述待处理的业务事件对应的算法单元,则执行步骤S503-步骤S504;若所述算法链集合中不存在与所述待处理的业务事件对应的算法单元,则执行步骤S505。
步骤S502,将所述算法链集合中与所述待处理的业务事件对应的所有的算法单元按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中。
具体地,若所述算法链集合中存在与所述待处理的业务事件对应的所有的算法单元,说明现有的算法链集合中存在可以复用的算法单元,则将所述算法链集合中与所述待处理的业务事件对应的所有的算法单元按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中。以便可以用来处理待处理的业务事件。
步骤S503,配置所缺少的与所述待处理的业务事件对应的算法单元。
具体地,若所述算法链集合中存在与所述待处理的业务事件对应的所有的算法单元,说明现有的算法链集合中只存在部分可以复用的算法单元,仍需要配置用来处理待处理的业务事件的其它的算法单元,因此,可以配置所缺少的与所述待处理的业务事件对应的算法单元。
步骤S504,将所述算法链集合中与所述待处理的业务事件对应的算法单元,及配置的与所述待处理的业务事件对应的算法单元,按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中。
具体地,若所述算法链集合中存在与所述待处理的业务事件对应的所有的算法单元时,在配置完所缺少的与所述待处理的业务事件对应的算法单元,可以将所述算法链集合中与所述待处理的业务事件对应的算法单元,及配置的与所述待处理的业务事件对应的算法单元,按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中。
步骤S505,配置与所述待处理的业务事件对应的算法单元,并将所述与所述待处理的业务事件对应的算法单元,按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中。
具体地,若所述算法链集合中不存在与所述待处理的业务事件对应的算法单元,说明现有的算法链集合中不存在任何与所述待处理的业务事件对应的算法单元,需要配置与所述待处理的业务事件的算法单元,因此,可以配置与所述待处理的业务事件对应的算法单元,并将所述与所述待处理的业务事件对应的算法单元,按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中。
特别地,如果业务需求需要扩展新的算法,只需要实现Algorithm的规范,即可多扩展多一种执行算法。
从上述技术方案可以看出,若预设的算法链集合中不存在与请求者发送的业务事件对应的算法链,本申请实施例可以针对不同的情况来配置与所述待处理的业务事件对应的算法单元,从而利用所述与所述待处理的业务事件对应的算法单元来配置对应的算法链。以实现对不同的待处理的业务事件的处理。
下面开始介绍本申请实施例提供的算法调度装置,下文描述的算法调度装置与上文描述的算法调度方法可相互对应参照。
参见图6,图6为本申请实施例公开的一种算法调度装置结构示意图。
如图6所示,该算法调度装置可以包括:
封装单元101,用于接收请求者发送的业务数据并输入处理器进行封装,得到待处理的业务事件后保存至事件循环驱动引擎;
第一调用单元102,用于调用所述事件循环驱动引擎将所述待处理的业务事件发送至算法处理器;
第二调用单元103,用于调用所述算法处理器在预设的算法链集合中确定与所述待处理的业务事件匹配的算法链,来处理所述待处理的业务事件,得到所述待处理的业务事件的处理结果,其中,所述算法链集合中包含至少一条算法链,每条算法链包含至少一个算法单元;
反馈单元104,用于将所述处理结果反馈给所述请求者。
本申请实施例的装置可以将算法进行统一管理,通过所述事件循环驱动引擎来完成对所述待处理的业务事件的调度,可以根据业务事件来确定对应的算法链来完成对业务事件的处理,可以有效实现算法复用,有效解决了算法兼容困难的问题,进一步的,还可以简化算法研发的成本,提高业务事件的处理效率。
进一步可选的,上述第一调用单元102,可以包括:
识别单元,用于调用所述算法处理器,识别所述待处理的业务事件的所有子业务事件对应的算法链标识,其中,每一个算法链标识对应一个算法链;
事件处理单元,用于在预设的算法链集合中确定与每一子业务事件的算法链标识对应的算法链,以处理各个子业务事件,得到各个子业务事件的处理结果。
进一步可选地,所述事件处理单元的执行过程,可以包括:
依据所述待处理的业务事件的各个子业务事件的处理逻辑,将所述待处理的业务事件中处理顺序排在首个的子业务事件作为当前处理的业务事件,在预设的算法链集合中确定与所述当前处理的业务事件对应的算法链标识匹配的算法链,来处理所述当前处理的业务事件,得到所述当前处理的业务事件的处理结果;
将所述当前处理的业务事件的处理结果与所述待处理的业务事件中未处理的子业务事件重新封装成待处理的业务事件后,保存至所述事件循环驱动引擎;
调用所述事件循环驱动引擎将所述待处理的业务事件发送至所述算法处理器;
返回执行调用所述算法处理器,依据所述待处理的业务事件的各个子业务事件的处理逻辑,将所述待处理的业务事件中处理顺序排在首个的子业务事件作为当前处理的业务事件,在预设的算法链集合中确定与所述当前处理的业务事件对应的算法链标识匹配的算法链,来处理所述当前处理的业务事件,得到所述当前处理的业务事件的处理结果的步骤,直至得到待处理的业务事件中各个子业务事件的处理结果。
进一步可选地,上述反馈单元104的执行过程可以包括:
调用所述算法处理器将所述待处理的业务事件处理结果发送给所述事件循环驱动引擎;
调用所述事件循环驱动引擎将所述待处理的业务事件的处理结果反馈给所述请求者。
进一步可选地,上述算法调度装置,还可以包括:
判断单元,用于当所述算法链集合中不存在与所述待处理的业务事件对应的算法链时,判断所述算法链集合中是否存在与所述待处理的业务事件对应的所有的算法单元;
第一组合单元,用于当所述算法链集合中存在与所述待处理的业务事件对应的所有的算法单元时,将所述算法链集合中与所述待处理的业务事件对应的所有的算法单元按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中;
第二组合单元,用于当所述算法链集合中只存在部分与所述待处理的业务事件对应的算法单元时,配置所缺少的与所述待处理的业务事件对应的算法单元,并将所述算法链集合中与所述待处理的业务事件对应的算法单元,及配置的与所述待处理的业务事件对应的算法单元,按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中;
第三组合单元,用于当所述算法链集合中不存在与所述待处理的业务事件对应的算法单元时,配置与所述待处理的业务事件对应的算法单元,并将所述与所述待处理的业务事件对应的算法单元,按照所述待处理的业务事件的处理逻辑,组合成与所述待处理的业务事件对应的算法链后保存在所述算法链集合中。
其中,上述算法调度装置所包含的各个单元的具体处理流程,可以参照前文算法调度方法部分相关介绍,此处不再赘述。
本申请实施例提供的算法调度装置可应用于算法调度设备,如终端:手机、电脑等。可选的,图7示出了算法调度设备的硬件结构框图,参照图7,算法调度设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4。
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信。
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:实现前述终端算法调度方案中的各个处理流程。
本申请实施例还提供一种可读存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:实现前述终端在算法调度方案中的各个处理流程。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。各个实施例之间可以相互组合。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种算法调度方法,其特征在于,包括:
接收请求者发送的业务数据并输入处理器进行事件封装,得到待处理业务事件并保存至事件循环驱动引擎,所述待处理业务事件包括至少一个根据待处理业务事件的处理逻辑按序排列的子业务事件;
事件循环驱动引擎把所述待处理业务事件发送至算法处理器;
所述子业务事件还包括算法链标识,所述算法处理器用于在预设算法链集合中根据所述算法链标识确定与所述子业务事件匹配的算法链;
算法处理器执行算法链对所述待处理业务事件进行处理得到处理结果;
将所述处理结果反馈给所述请求者;
所述算法处理器执行算法链对所述待处理业务事件进行处理得到处理结果的过程,具体包括:
步骤S1.根据待处理业务事件的处理逻辑确定首个子业务事件;
步骤S2.在预设算法链集合中根据算法链标识确定与首个子业务事件匹配的算法链;
步骤S3.执行算法链对首个子业务事件业务处理得到当前处理结果;
步骤S4.把所述当前处理结果与待处理业务事件中未处理的子业务事件进行事件封装,更新为待处理业务事件并保存至事件循环驱动引擎;
步骤S5.接收事件循环驱动引擎发送的待处理业务事件;
步骤S6.判断待处理业务事件是否有未处理的子业务事件,若有则返回所述步骤S1,否则输出当前待处理业务事件的处理结果。
2.根据权利要求1所述的算法调度方法,其特征在于,所述将所述处理结果反馈给所述请求者,包括:
调用所述算法处理器将所述待处理业务事件的处理结果发送给所述事件循环驱动引擎;
调用所述事件循环驱动引擎将所述处理结果反馈给所述请求者。
3.根据权利要求1所述的算法调度方法,其特征在于,所述算法处理器包括算法执行器、算法链、算法单元,算法链包括至少一个算法单元,所述预设算法链集合中的算法链的创建过程包括:
配置与业务事件对应的算法单元;
依据业务事件的处理逻辑将所述算法单元有序组成与业务事件匹配的算法链;
保存所述算法链在所述预设的算法链集合中。
4.根据权利要求3所述的算法调度方法,其特征在于,所述预设算法链集合中不存在与待处理业务事件匹配的算法链时,所述方法还包括:
若所述算法链集合中包括部分与待处理业务事件对应的第一算法单元,则配置与待处理业务事件对应而算法链集合缺失的第二算法单元,根据待处理业务事件的处理逻辑把第一算法单元和第二算法单元有序组成与待处理业务事件匹配的算法链并保存至所述预设算法链集合;
所述算法链集合不包括任何与待处理业务事件对应的算法单元,则配置与待处理业务事件对应而算法链集合缺失的第三算法单元,根据待处理业务事件的处理逻辑把第三算法单元有序组成与待处理业务事件匹配的算法链并保存至所述预设算法链集合。
5.一种算法调度装置,其特征在于,包括:
封装单元,用于接收请求者发送的业务数据并输入处理器进行事件封装,得到待处理业务事件并保存至事件循环驱动引擎,所述待处理业务事件包括至少一个根据待处理业务事件的处理逻辑按序排列的子业务事件;
第一调用单元,用于调用所述事件循环驱动引擎将所述待处理业务事件发送至算法处理器;
所述子业务事件还包括算法链标识,所述算法处理器用于在预设算法链集合中根据所述算法链标识确定与所述子业务事件匹配的算法链;
第二调用单元,用于调用算法处理器执行算法链对所述待处理业务事件进行处理得到处理结果;
所述第二调用单元调用算法处理器执行算法链对所述待处理业务事件进行处理得到处理结果时,具体执行如下过程:
步骤S1.根据待处理业务事件的处理逻辑确定首个子业务事件;
步骤S2.在预设算法链集合中根据算法链标识确定与首个子业务事件匹配的算法链;
步骤S3.执行算法链对首个子业务事件业务处理得到当前处理结果;
步骤S4.把所述当前处理结果与待处理业务事件中未处理的子业务事件进行事件封装,更新为待处理业务事件并保存至事件循环驱动引擎;
步骤S5.接收事件循环驱动引擎发送的待处理业务事件;
步骤S6.判断待处理业务事件是否有未处理的子业务事件,若有则返回所述步骤S1,否则输出当前待处理业务事件的处理结果;
反馈单元,用于将所述处理结果反馈给所述请求者。
6.一种算法调度设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1-4中任一项所述的算法调度方法。
7.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-4中任一项所述的算法调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595235.6A CN114327818B (zh) | 2021-12-23 | 2021-12-23 | 一种算法调度方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111595235.6A CN114327818B (zh) | 2021-12-23 | 2021-12-23 | 一种算法调度方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327818A CN114327818A (zh) | 2022-04-12 |
CN114327818B true CN114327818B (zh) | 2024-03-26 |
Family
ID=81013125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111595235.6A Active CN114327818B (zh) | 2021-12-23 | 2021-12-23 | 一种算法调度方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114327818B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118579A (zh) * | 2022-05-31 | 2022-09-27 | 国网河北省电力有限公司沧州供电分公司 | 电力营销系统设备数据处理方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017185615A1 (zh) * | 2016-04-25 | 2017-11-02 | 乐视控股(北京)有限公司 | 一种业务处理设备的业务状态确定方法及调度设备 |
CN107819861A (zh) * | 2017-11-16 | 2018-03-20 | 中国银行股份有限公司 | 业务数据处理方法、装置及系统 |
CN110941488A (zh) * | 2019-12-11 | 2020-03-31 | 中国建设银行股份有限公司 | 一种任务处理方法、装置、设备和存储介质 |
CN111176802A (zh) * | 2019-07-26 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、电子设备及存储介质 |
CN112181612A (zh) * | 2020-08-31 | 2021-01-05 | 深圳市优必选科技股份有限公司 | 任务处理方法、装置、电子设备及计算机可读存储介质 |
CN112434241A (zh) * | 2019-08-26 | 2021-03-02 | 上海哔哩哔哩科技有限公司 | 业务处理方法、计算机设备及存储介质 |
CN112905323A (zh) * | 2021-02-09 | 2021-06-04 | 泰康保险集团股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-12-23 CN CN202111595235.6A patent/CN114327818B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017185615A1 (zh) * | 2016-04-25 | 2017-11-02 | 乐视控股(北京)有限公司 | 一种业务处理设备的业务状态确定方法及调度设备 |
CN107819861A (zh) * | 2017-11-16 | 2018-03-20 | 中国银行股份有限公司 | 业务数据处理方法、装置及系统 |
CN111176802A (zh) * | 2019-07-26 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 任务处理方法、装置、电子设备及存储介质 |
CN112434241A (zh) * | 2019-08-26 | 2021-03-02 | 上海哔哩哔哩科技有限公司 | 业务处理方法、计算机设备及存储介质 |
CN110941488A (zh) * | 2019-12-11 | 2020-03-31 | 中国建设银行股份有限公司 | 一种任务处理方法、装置、设备和存储介质 |
CN112181612A (zh) * | 2020-08-31 | 2021-01-05 | 深圳市优必选科技股份有限公司 | 任务处理方法、装置、电子设备及计算机可读存储介质 |
CN112905323A (zh) * | 2021-02-09 | 2021-06-04 | 泰康保险集团股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114327818A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115328663B (zh) | 基于PaaS平台进行资源调度的方法、装置、设备和存储介质 | |
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
CN109492017B (zh) | 业务信息查询处理方法、系统、计算机设备和存储介质 | |
CN102456185B (zh) | 一种分布式工作流处理方法及分布式工作流引擎系统 | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
CN102025649A (zh) | 企业服务总线的消息处理方法 | |
CN114327818B (zh) | 一种算法调度方法、装置、设备及可读存储介质 | |
CN111258550A (zh) | 一种软件架构及软件架构开发方法 | |
CN111694640B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN112181378A (zh) | 业务流程的实现方法及装置 | |
CN111277983A (zh) | 一种rfid中间件、发布订阅系统和数据传输方法 | |
CN113296960B (zh) | 数据准实时分发方法、装置、设备及存储介质 | |
CN111198915A (zh) | 一种基于公共信息模型的数据分发系统及方法 | |
CN112114976B (zh) | 业务处理方法、装置、设备及存储介质 | |
CN115550354A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN113760264A (zh) | 多应用之间组件复用的方法和装置 | |
CN112099930A (zh) | 一种量子计算机集群分布式队列调度方法 | |
CA3202557A1 (en) | A data distribution method, apparatus, device and storage medium | |
CN115481188A (zh) | 数据汇聚方法及装置、电子设备 | |
CN111510484B (zh) | 区块链处理方法、系统、装置、计算机设备和存储介质 | |
CN115619169A (zh) | 面向跨组织业务需求的异构信息系统集成方法、终端设备 | |
US6823524B1 (en) | System and method for managing the distribution of events in a data processing system | |
CN114896637A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN112165529A (zh) | 一种低成本跨网络数据交换的方法、装置、设备和介质 | |
CN113726603A (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 | ||
CP03 | Change of name, title or address |
Address after: 510000 No. 202, 265 Gaotang Road, Tianhe District, Guangzhou City, Guangdong Province Patentee after: Guangzhou Tidong Technology Co.,Ltd. Country or region after: China Address before: 510000 No. 202, 265 Gaotang Road, Tianhe District, Guangzhou City, Guangdong Province Patentee before: Guangzhou Ti Dong Technology Co.,Ltd. Country or region before: China |