CN117725335A - 数据对象的调度方法、装置、设备及计算机可读存储介质 - Google Patents
数据对象的调度方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117725335A CN117725335A CN202311479770.4A CN202311479770A CN117725335A CN 117725335 A CN117725335 A CN 117725335A CN 202311479770 A CN202311479770 A CN 202311479770A CN 117725335 A CN117725335 A CN 117725335A
- Authority
- CN
- China
- Prior art keywords
- data object
- scheduling
- scheduled
- data
- priority
- 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 149
- 238000004364 calculation method Methods 0.000 claims abstract description 43
- 230000008569 process Effects 0.000 claims description 57
- 238000004590 computer program Methods 0.000 claims description 24
- 238000004422 calculation algorithm Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 239000012634 fragment Substances 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据对象的调度方法、装置、设备及计算机可读存储介质,应用于计算机技术领域。该数据对象的调度方法包括:根据待调度数据对象的属性特征,确定其优先级,由于上述每个待调度数据对象的自身属性特征计算确定的,因此待调度数据对象的优先级能够反映待调度数据对象的重要程度。进一步地,根据分别包含有优先级的多个待调度数据对象确定对象组,对象组中包含的待调度数据对象为动态更新的,上述对象组中最高优先级的待调度数据对象也是随之更新的。根据上述对象组中待调度数据对象的优先级来确定第一数据对象,则可以根据对象组中动态更新的优先级来确定优先被调度的数据对象。本申请能够提升较高重要程度数据对象的调度时效性。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种数据对象的调度方法、装置、设备及计算机可读存储介质。
背景技术
随着互联网技术的发展,越来越多的信息交互及展示可以通过互联网平台进行。对于显示在用户电子设备的信息,需经计算机后台对该信息进行调度后实现的。
现有的数据对象的调度过程,一般是数据对象按被设定的推送时间,存储在数据库中,通过上述排序测量查询出待调度的数据对象后,对该数据对象进行调度,从而实现该数据对象被推动至某个电子设备进行显示。但是限于后台设备的处理能力,同时被调度的数据对象的数量是有限的。例如,当一个数据对象被推送完成后,才能执行下一个数据对象的调度与推送。
然而,相关技术提供的数据对象的调度方案,存在重要程度更高的数据对象可能需要等待重要程度较低的数据对象调度结束后才能够被调度的问题。
发明内容
本申请提供一种数据对象的调度方法、装置、设备及存储介质,可以解决上述相关技术所存在的问题,能够提升较高重要程度数据对象的调度时效性。
第一方面,本申请提供一种数据对象的调度方法,该方法包括:根据待调度数据对象的属性特征,确定上述待调度数据对象的优先级;将包含有优先级的待调度数据对象,添加入第一对象组,其中,上述第一对象组中包含的待调度数据对象为动态更新的;根据上述第一对象组中待调度数据对象分别所对应的优先级,确定第一数据对象;以及,调度上述第一数据对象。
本申请提供的数据对象的调度方法,可以避免重要程度更高的数据对象要等待重要程度较低的数据对象调度结束后才能够被调度的问题,能够提升较高重要程度数据对象的调度时效性。
第二方面,本申请提供了一种数据对象的调度装置,该装置包括:优先级确定模块、对象组确定模块、第一数据对象确定模块以及数据对象调度模块;
其中,上述优先级确定模块,用于根据待调度数据对象的属性特征,确定上述待调度数据对象的优先级;上述对象组确定模块,用于将包含有优先级的待调度数据对象,添加入第一对象组,其中,上述第一对象组中包含的待调度数据对象为动态更新的;上述第一数据对象确定模块,用于根据上述第一对象组中待调度数据对象分别所对应的优先级,确定第一数据对象;以及,上述数据对象调度模块,用于调度上述第一数据对象。
在一些实施例中,基于前述方案,上述第一数据对象确定模块,具体用于:将上述第一对象组中当前优先级最高的至少一个待调度数据对象,确定为第一数据对象。
在一些实施例中,基于前述方案,上述数据对象调度模块,包括:调度资源确定单元、可暂停数据对象确定单元以及调度单元。
其中,上述调度资源确定单元用于:确定当前是否存在上述第一数据对象的调度资源;上述可暂停数据对象确定单元用于:若确定当前不存在上述第一数据对象的调度资源,则确定当前处于调度过程中的至少一个第二数据对象中是否存在可暂停数据对象,其中上述可暂停数据对象的优先级小于上述第一数据对象的优先级;以及,上述调度单元用于:若确定存在上述可暂停数据对象,则停止对上述可暂停数据对象的调度过程,并通过上述可暂停数据对象对应的调度资源,对上述第一数据对象进行调度。
在一些实施例中,基于前述方案,上述数据对象的调度装置还包括:更新模块。
其中,上述更新模块用于:记录并更新上述至少一个第二数据对象的调度进度信息;上述更新模块还用于:响应停止对上述可暂停数据对象的调度过程,停止对上述可暂停数据对象的调度进度信息进行更新;以及,上述数据对象调度模块还用于:在上述第一数据对象调度结束,且确定上述第一对象组中不存在优先级大于上述暂停数据对象的优先级的情况下,根据上述可暂停数据对象的最新的调度进度信息,对上述可暂停数据对象继续执行调度过程。
在一些实施例中,基于前述方案,上述数据对象的调度装置还包括:保存模块。
其中,上述保存模块用于:响应停止对上述可暂停数据对象的调度过程,保存上述可暂停数据对象的当前调度进度信息;以及,上述数据对象调度模块还用于:在上述第一数据对象调度结束,且确定上述第一对象组中不存在优先级大于上述暂停数据对象的优先级的情况下,根据上述可暂停数据对象的当前调度进度信息,对上述可暂停数据对象继续执行调度过程。
在一些实施例中,基于上述方案,上述数据对象调度模块还用于:上述可暂停数据对象确定单元确定当前处于调度过程中的至少一个第二数据对象中是否存在可暂停数据对象之后,若确定不存在上述可暂停数据对象,则不间断执行上述至少一个第二数据对象的调度过程。
在一些实施例中,基于上述方案,上述数据对象调度模块还用于:在上述调度资源确定单元确定当前是否存在上述第一数据对象的调度资源之后,若确定当前存在上述第一数据对象的调度资源,则基于上述调度资源调度上述第一数据对象。
在一些实施例中,基于上述方案,上述属性特征的类型包括以下信息中的一种或多种:调度紧急度、待调度数据对象的类型以及调度目的地。
在一些实施例中,基于上述方案,不同类型的属性特征对应于不同的影响级别;
上述优先级确定模块,包括:计算次序确定单元和优先权计算单元。
其中,上述计算次序确定单元用于:根据N个类型的属性特征分别的影响级别,确定计算次序,上述N取值为正整数;以及,上述优先级计算单元用于:基于上述计算次序,根据上述N个类型的属性特征依次执行N轮计算,得到上述待调度数据对象的打分值,其中上述打分值用于确定上述待调度数据对象的优先级。
在一些实施例中,基于上述方案,属于同一类型的不同属性特征对应于不同的权重;上述优先级计算单元执行第i轮计算包括:根据第i-1轮计算的结果和第i个类型的属性特征对应的权重,确定上述第i轮计算的结果。
在一些实施例中,基于上述方案,上述对象组确定模块820,具体用于:根据上述待调度数据对象对应的优先级,将上述待调度数据对象保存至第一存储空间,得到第一对象组。
在一些实施例中,基于上述方案,目标存储空间存储有第二对象组,上述第二对象组包含多个数据对象;上述数据对象的调度装置还包括:待调度数据对象确定模块。
其中,上述待调度数据对象确模块用于:通过轮询算法定时读取目标存储空间,以从上述第二对象组中获取当前时间满足预设推送时间的数据对象,得到上述待调度数据对象;或者,通过轮询算法定时读取目标存储空间,以从上述第二对象组中获取当前时间满足预设推送时间的数据对象,以及,对上述数据对象进行拆分得到子数据对象,将上述子数据对象确定为上述待调度数据对象。
本申请提供的数据对象的调度装置,可以避免重要程度更高的数据对象要等待重要程度较低的数据对象调度结束后才能够被调度的问题,能够提升较高重要程度数据对象的调度时效性。
第三方面,提供了一种电子设备,包括处理器和存储器。上述存储器用于存储计算机程序,上述处理器用于调用并运行上述存储器中存储的计算机程序,以执行上述第一方面所提供的数据对象的调度方法。
第四方面,提供了一种芯片,用于实现上述第一方面或其各实现方式中的方法。具体地,上述芯片包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有上述芯片的设备执行如上述第一方面所提供的数据对象的调度方法。
第五方面,提供了一种计算机可读存储介质,用于存储计算机程序,上述计算机程序使得计算机执行上述第一方面所提供的数据对象的调度方法。
第六方面,提供了一种计算机程序产品,包括计算机程序指令,上述计算机程序指令使得计算机执行上述第一方面所提供的数据对象的调度方法。
第七方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面所提供的数据对象的调度方法。
综上,本申请实施例提供的数据对象调度方案中,根据待调度数据对象的属性特征,确定该待调度数据对象的优先级,其中,由于上述每个待调度数据对象的自身属性特征计算确定的,因此每个待调度数据对象的优先级能够反映对应待调度数据对象的重要程度。进一步地,本申请实施例根据分别包含有优先级的多个待调度数据对象确定第一对象组,由于可能持续存在新的待调度数据对象的加入以及可能存在已经被调度的数据对象,因此上述第一对象组中包含的待调度数据对象为动态更新的。可以理解的是,上述第一对象组中最高优先级的待调度数据对象也是随之更新的。而本申请实施例根据上述第一对象组中待调度数据对象的优先级来确定第一数据对象,则可以根据第一对象组中动态更新的优先级(即,数据对象的重要程度)来确定优先被调度的数据对象,例如,可以将动态更新后最高优先级的待调度数据对象作为优先被调度的数据对象。可见,通过本申请实施例,可以避免重要程度更高的数据对象要等待重要程度较低的数据对象调度结束后才能够被调度的问题,能够提升较高重要程度数据对象的调度时效性。
附图说明
为了更清楚地说明本发明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据对象的调度方案的应用环境的系统构架示意图;
图2为本申请实施例提供的基于图1中系统构架的数据对象的调度方案的流程示意图;
图3为本申请实施例提供的数据对象的调度方法的流程示意图;
图4为本申请实施例提供的第一数据对象的调度方法的流程示意图;
图5A为本申请实施例提供的可暂停数据对象的一种断点续发方法的流程示意图;
图5B为本申请实施例提供的可暂停数据对象的另一种断点续发方法的流程示意图;
图6为本申请另一实施例提供的基于图1中系统构架的数据对象的调度方案的流程示意图;
图7为本申请实施例提供的数据对象的调度方案的时序示意图;
图8为本申请实施例提供的数据对象的调度装置的示意性框图;
图9为本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够除了在这里图示或描述的那些以外的顺序实施。在本发明本申请实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
本申请提出的技术方案,可应用于云计算、调度系统(例如,广告调度、视频调度)等技术领域,用于避免重要程度更高的数据对象要等待重要程度较低的数据对象调度结束后才能够被调度的问题,能够提升较高重要程度数据对象的调度时效性。
数据对象的调度后可以实现对该数据对象的推送,因此在数据对象的调度过程中,为每个数据对象预先设置的推送时间,是相关技术进行调度的重要参考因素。具体地,相关技术提供的数据对象的调度方案中,按照数据对象的推送时间生成待调度数据对象的队列。从而,可以实现将推送时间靠前的数据对象优先调度,由于调度相关的计算机处理能力(如,吞吐能力,也称为:调度资源)是存在上限的,因此推送时间靠后的数据对象可能需要等待正在调度的数据对象被调度结束后再被调度。
由上述可知,相关技术提供的数据对象的调度方案,以数据对象的推送时间作为单一的调度参考因素,而没有考虑数据对象自身的重要程度。例如,数据对象A的推送时间a,相较数据对象B的推送时间b较靠前,因此按照相关技术提供的方案,将优先对数据对象A进行调度。但是数据对象B的重要程度高于数据对象A,但是受限于调度资源,数据对象B需要等待数据对象A调度结束才可能被调度。可以理解的是,数据对象A被调度结束时可能已经超出了数据对象B的推送时间b。可见,相关技术提供的数据对象的调度方案,存在重要程度更高的数据对象可能需要等待重要程度较低的数据对象调度结束后才能够被调度的问题,无法保障重要性较高数据对象的调度时效性。又例如,数据对象A和数据对象C的推送时间相同,均为a。若采用相关技术提供的数据对象的调度方案,在调度资源不允许数据对象A和数据对象C同时被调度的情况下,则无法确定数据对象A和数据对象C的调度顺序,可能导致数据对象A和数据对象C均调度失败。可见,相关技术提供的数据对象的调度方案还存在调度时间存在冲突的情况下,数据对象无法被成功调度的问题。
为了解决上述技术问题,本申请实施例根据待调度数据对象的属性特征,确定该待调度数据对象的优先级,其中,由于上述每个待调度数据对象的自身属性特征计算确定的,因此每个待调度数据对象的优先级能够反映对应待调度数据对象的重要程度。进一步地,本申请实施例根据分别包含有优先级的多个待调度数据对象确定第一对象组,由于可能持续存在新的待调度数据对象的加入以及可能存在已经被调度的数据对象,因此上述第一对象组中包含的待调度数据对象为动态更新的。可以理解是的,上述第一对象组中最高优先级的待调度数据对象也是随之更新的。而本申请实施例根据上述第一对象组中待调度数据对象的优先级来确定第一数据对象,则可以根据第一对象组中动态更新的优先级(即,数据对象的重要程度)来确定优先被调度的数据对象,例如,可以将动态更新后最高优先级的待调度数据对象作为优先被调度的数据对象。可见,通过本申请实施例,可以避免重要程度更高的数据对象要等待重要程度较低的数据对象调度结束后才能够被调度的问题,能够提升较高重要程度数据对象的调度时效性。同时,本申请实施例提供的数据对象的调度方案对于数据对象存在调度时间存在冲突的情况,也能够保障相关数据对象被成功调度。
下面通过图1对本申请实施例的实施环境进行介绍。
示例性的,图1为本申请实施例提供的一种数据对象的调度方案的应用环境的系统构架示意图。如图1所示,本申请实施例的实施环境的系统架构可以包括:用于设置的数据对象的终端102、用于管理数据对象并实现对数据对象的调度的服务器104,以及用在实现数据对象的调度过程中进行数据存储的数据库106。其中,终端102与服务器104之间可以通过网络连接,服务器104与数据库106之间可以通过网络连接。
具体的,上述数据对象例如可以是广告、游戏、影视视频等,也可以理解为待调度的任务。示例性的实施例中,运营用户通过终端102创建相关数据对象,还可以通过终端102对所创建的数据对象进行审核等操作。进一步地,在运营用户审核确认相关数据对象无误后,还可以通过终端102触发以启动调度流程。示例性的参考图2,管理服务可以部署于上述终端102,具体地,基于终端102可以实现S11-S13。在S11中,基于管理服务实现数据对象的创建、审核。在S12中,基于管理服务将所创建的数据对象写入数据库20的一存储空间,该存储空间具体存储数据对象的基本信息。以及,在S13中,向控制服务发送触发请求,以触发启动调度流程。其中,终端102为电脑、智能手机、平板、智能语音交互设备、智能家电、车载终端、飞行器、可穿戴智能设备、医疗设备等等。设备往往配置有显示装置,显示装置也可为显示器、显示屏、触摸屏等等,触摸屏也可为触控屏、触控面板等等。但并不局限于此。
在调度流程被启动之后,通过服务器104实现对上述所创建数据对象的调度。示例性的参考图2,控制服务可以部署于上述服务器104,具体地,基于服务器104可以实现S14-S18。在S14中,控制服务在被请求触发后,获取数据对象的基础信息,以及,控制服务将相关数据对象写入数据库22,存储至该数据库中的数据对象可记作第二对象组。示例性的,第二对象组可以是按照推送时间进行存储的数据对象序列。在S15中,控制服务可以定时地在查询第二对象组,以读取满足预设时间条件的数据对象,作为待调度数据对象。在S16之前,控制服务可以计算每个待调度数据对象的优先级,进一步地,在S16中,将包含有优先级的数据对象写入数据库24,存储至该数据库中的数据对象可记作第一对象组。示例性的,第一对象组可以是按照优先级进行存储的数据对象序列。在S17中,控制服务可以接收到来自调度服务的推送请求。在S18中,控制服务读取第一对象组,并根据该对象组中数据对象的优先级确定优先被调度的数据对象,即第一数据对象。进一步地,在S110中,基于调度服务,将实现对第一数据对象的调度与推送。其中,服务器104可以是云服务器,具体可以提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、以及大数据和人工智能平台等基础云计算服务;另外,服务器104还可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。网络可以是有线通信链路、无线通信链路或者光纤电缆等等,本申请实施例在此不做限制,例如,可以是能够在终端102和服务器104之间提供通信链路的各种连接类型的通信介质。
继续参考图1,上述数据库106可以是云存储数据库。根据所需存储数据的类型,具体可以包含多种类型的数据库。例如,通过终端102所创建的数据对象可以存储至结构化查询语言(Structured Query Language,SQL)数据库,如图2中数据库20;数据对象的调度过程中,待调度数据对象队列可以存储在远程数据词典(Remote Dictionary Server,Redis数据库中,如图2中数据库22,待调度数据对象及其优先级也可以存储在Redis)数据库中,如图2中数据库24;等等。
需要说明的是,图1示例性示出本申请实施例的实施环境的系统构架,但是本申请实施例的实施环境的系统构建不限于图1所示。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本申请实施例提供的数据对象的调度方法P300的流程示意图。其中,方法P300的执行主体可以是如图1所示的服务器104,同前所述,服务器104中可以搭载有上述控制服务。参考图3,方法P300包括:
S310,根据待调度数据对象的属性特征,确定上述待调度数据对象的优先级。
上述待调度数据对象可以是待被在一个或多个平台推送的广告、游戏、影视视频等。其中,上述属性特征可以是能够体现待推送数据对象重要程度的特征。示例性的实施例中,上述属性特征可以包括多种类型,例如可以包括以下信息中的至少一种:调度紧急度、待调度数据对象的类型以及调度目的地等。其中,上述调度紧急度例如可以划分为:一级紧急度、二级紧急度以及三级紧急度;上述待调度数据对象的类型例如可以包含:运营类、功能类以及个性化类;上述调度目的地可以是关于被调度至的平台类型(A平台、B平台……),也可以是被调度至设备的系统类型(鸿蒙系统、ios、android……)等等。可以理解的是,可以根据实际需求设置待调度数据对象的属性特征,因此本申请实施例对属性特征的具体类型不做限定。示例性的实施例中,待调度数据对象属性特征以及推送时间表示为表1。
表1
本申请实施例中,服务器104基于控制服务,将根据待调度数据对象的属性特征计算该待调度数据对象的优先级,进一步地,服务器104基于控制服务,将根据优先级确定待调度数据对象之间的调度顺序。其中,由于待调度数据对象的属性特征类型丰富且可以根据实际需要增设,因此能够区分度高的反映出待调度数据对象之间重要程度的差别,即使两个待调度数据对象之间相似程度高,也可以通过丰富的属性特征来计算出不同的优先级,进而轻松确定量对象的调度顺序。例如表1中示出的数据对象b和数据对象c的推送时间戳均为“10083352”,假如采用相关技术提供方案即仅考虑单一的推送时间来确定调度顺序,由于两者的推送时间相同,则不容易确定出调度顺序;若调度资源有限不能支持两个数据对象同时被调度,相关技术的方案还可能产生数据对象无法被成功调度的问题。然而,采用本申请实施例提供的方案,可以通过丰富的属性特征可以明确确定出两数据对象之间优先级的差别,进而轻松确定数据对象b与数据对象c之间的调度顺序,不仅可以保障优先级高的数据对象的调度时效性,还可以避免相关技术中存在的问题。
以下介绍本申请实施例还提供的一种优先级计算实施例。包括:
S310-1,根据N个类型的属性特征分别的影响级别,确定计算次序,上述N取值为正整数。
为了进一步提升优先级计算精细度,本申请实施例为不同类型的属性特征设置不同的计算次序。具体地,由于不同类型的属性特征对同一数据对象的重要程度不同,因此不同类型的属性特征对应于不同的影响级别。具体地,对于影响级别越高,计算次序越靠前。例如,调度紧急度、待调度数据对象的类型以及调度目的地,三种类型的属性特征影响程度依次降低,则调度紧急度参与第一轮计算、待调度数据对象的类型参与第二轮计算,以及调度目的地参与第三轮计算。
S310-2,基于上述计算次序,根据上述N个类型的属性特征依次执行N轮计算,得到上述待调度数据对象的打分值,其中上述打分值用于确定上述待调度数据对象的优先级。
其中,第i轮计算包括:根据第i-1轮计算的结果和第i个类型的属性特征对应的权重,确定上述第i轮计算的结果。第i轮计算公式可以表示为公式(1)。
scorei = α× socrei-1 + Vi (1)
其中,scorei表示第i轮计算的结果;scoreN表示待调度数据对象的打分值;scorei-1表示第i-1轮计算的结果;scorei的初始值,即score0,取值为0;Vi表示第i个类型的属性特征对应的权重;α表示系数,取值为大于1的数值,例如取值为10。
上述权重与相关属性特征对数据对象的重要性的影响程度相关。具体的,可以是影响程度越大,权重取值越小,该情况下,数据对象的打分值越小优先级越高;还可以是影响程度越大,权重取值越大,该情况下,数据对象的打分值越大优先级越高。假如,一个示例性的实施例中,属性特征的影响程度越大,权重取值越小,各个属性特征对应的权重如表2。
表2
以下结合表2,以数据对象b的优先级计算为例,描述待调度数据对象的优先级确定实施例。具体的,由于属性特征“调度紧急度、待调度数据对象的类型以及调度目的地”,对数据对象b的重要性的影响级别逐渐减小,因此确定计算次序依次为:调度紧急度、待调度数据对象的类型以及调度目的地。其中,数据对象b的属性特征为:紧急程度为一级紧急度、待调度数据对象的类型为功能性,调度目标地为鸿蒙系统。
第一轮计算:socre0=0,V1=1,
Score1=α×socre0+V1=10×0+1=1;
第二轮计算:socre1=1,V2=1,
Score2=α×socre1+V2=10×1+1=11;
第三轮计算:socre2=11,V3=2,
Score3=α×socre2+V3=10×11+2=112。
从而可以计算出数据对象b的打分值为122;同理,还可以计算出上述数据对象c的打分值为323。由于本实施例中属性特征的影响程度越大权重取值越小,因此数据对象的打分值越大优先级越低;又由于数据对象b的打分值小于数据对象c的打分值,因此,数据对象b的优先级大于数据对象c的优先级。可见,通过本申请实施例提供的调度方案,可以有效区分待调度数据对象之间的重要程度,进而有利于保障重要程度更高的数据对象被优先调度。
需要说明的是,待调度数据对象的优先级计算方式不限于上述实施例所描述的方式,还可以是能够有效区分不同数据对象间重要程度的其他计算方式,本申请实施例对此不做限定。
继续参考图3,方法P300还包括:S320,将包含有优先级的待调度数据对象,添加入第一对象组,其中,上述第一对象组中包含的待调度数据对象为动态更新的。
需要说明的是,参考图2,服务器104基于控制服务定时的轮询数据库22中的第二对象组,以获取待调度数据对象,因此待调度数据对象可以是不断生成的。例如,服务器104基于控制服务计算如表1中数据对象a-数据对象c分别的优先级后,将包含优先级信息的数据对象a-数据对象c写入数据库24。具体地,可以将包含各自优先级的数据对象a、数据对象b以及数据对象c添加入数据库24中的一个队列,可以将该队列称为第一对象组。进一步地,对于不断生成的待调度数据对象,在确定其优先级后,将包含有优先级信息的数据对象添加入该第一对象组中。可见,第一对象组中包含的待调度数据对象为动态更新的,本申请实施例提供的方案中,将根据该第一对象组中数据对象的优先级信息确定调度顺序。
在一种可能的实施例中,在计算数据对象a-数据对象c分别的优先级的过程中,控制服务轮询数据库22,又获得了新的待调度数据对象d,则需要服务器104基于控制服务计算数据对象d的优先级,并将其写入数据库24,以加入上述第一对象组中,得到的第一对象组,具体包括数据对象a、数据对象b、数据对象c和数据对象d。
在另一种可能的实施例中,在计算数据对象d分别的优先级的过程中,第一对象组中的数据对象b已被调度,因此得到的第一对象组,具体包括数据对象a、数据对象c和数据对象d。
可见,上述第一对象组中包含的待调度数据对象为动态更新的。同时,第一对象组中最高优先级的待调度数据对象也是随之更新的。而本申请实施例根据上述第一对象组中待调度数据对象的优先级来确定第一数据对象,则可以根据第一对象组中动态更新的优先级(即,数据对象的重要程度)来确定优先被调度的数据对象,例如,可以将动态更新后最高优先级的待调度数据对象作为优先被调度的数据对象。从而通过本申请实施例,可以避免重要程度更高的数据对象要等待重要程度较低的数据对象调度结束后才能够被调度的问题,能够提升较高重要程度数据对象的调度时效性。
再次参考图3,方法P300还包括:S330,根据上述第一对象组中待调度数据对象分别所对应的优先级,确定第一数据对象。
需要说明的是,S330是为服务器104响应接收到推动请求(参考图2中S18)而执行的。同前所述,由于第一对象组中待调度数据对象为动态更新的,因此服务器104通过控制服务,在每当接收到推送请求的情况下,在动态更新的第一对象组中,可以确定出的当前优先级最高的至少一个数据对象,即上述第一数据对象。
由于优先级根据待调度数据对象的属性特征确定,用于反映待调度数据对象的重要程度,为了保障重要程度较高的数据对象被优先调度,因此本申请实施例中将上述第一对象组中当前优先级最高的至少一个待调度数据对象,确定为第一数据对象。可以理解的是,可以根据当前调度资源的充足程度确定同时被调度的数据对象的数量。例如,第一对象组当前包括优先级依次减小的:数据对象a、数据对象c和数据对象d,若当前的调度资源可以允许数据对象a和数据对象c同时被调度,因此可以将优先级最高的两个数据对象,作为上述第一数据对象;若当前的调度资源仅允许数据对象a被调度,因此可以将优先级最高的一个数据对象,作为上述第一数据对象。
本申请实施例综合考虑当前第一对象组中待调度数据对象的最高优先级以及当前调度资源,从而确定出被调度的数据对象。可见,本申请实施例不仅可以保障较高重要程度数据对象的调度时效性,还可以提升所有待调度数据对象被调度的整体时效性。
需要说明的是,S330服务器104在接收到推送请求的情况下,基于控制服务执行的。例如可以参考图2中的S18,在服务器104接收到推送请求的情况下,基于控制服务执行S330,以保证所确定出的第一数据对象能够被成功推送。
再次参考图3,方法P300还包括:S340,调度上述第一数据对象。
示例性的,图4为本申请实施例提供的第一数据对象的调度方法P400的流程示意图。其中,方法P400的执行主体也可以是如图1所示的服务器104,同前所述,服务器104中可以搭载有上述控制服务。
以下将结合图4对S330所确定出的第一数据对象进行调度的实施例,本实施例中以S330所确定出的第一数据对象的数量为一个为例进行说明。
参考图4,方法P400包括:S410,确定当前是否存在第一数据对象的调度资源。
其中,上述调度资源是指与调度相关的计算机处理能力,如,服务器最大吞吐能力等。
情况1、若确定当前不存在所述第一数据对象的调度资源,说明当前至少存在一个正在被推送的任务,且不存在用于执行第一数据对象的调度的资源,则执行S420:确定当前处于调度过程中的至少一个第二数据对象中是否存在可暂停数据对象。
其中,由于当前处于调度过程中的至少一个第二数据对象也是经过如S330确定的,也就是说,第二数据对象也是包含优先级信息的,因此可以通过比较第二数据对象与第一数据对象的优先级,来确定第二数据对象中是否存在可以暂时被停止调度的数据对象。具体的,将优先级小于所述第一数据对象的优先级的第二数据对象,确定为上述可暂停数据对象。本申请实施例通过确定优先级小于第一数据对象的可暂停数据对象,以保证重要程度更高的数据对象被优先调度。
情况1.1、若确定存在上述可暂停数据对象,说明当前占用调度资源的第二数据对象中,存在重要程度低于上述第一数据对象的数据对象,需要保障优先调度重要程度高于可暂停数据对象的第一数据对象。则执行S430:停止对可暂停数据对象的调度过程,并通过可暂停数据对象对应的调度资源,对第一数据对象进行调度。
情况1.2、若确定不存在上述可暂停数据对象,说明当前占用调度资源的第二数据对象,重要程度均高上述第一数据对象的数据对象,需要保障优先调度重要程度高于上述第一数据对象的第二数据对象。则执行S440:不间断执行所述至少一个第二数据对象的调度过程。
示例性的,在持续执行上述第二数据对象的调度过程中,且上述第一数据对象未被调度(即推送请求方还未得到被调度过来的数据对象)的情况下,可以多次执行S330,已确定第一数据对象属于第一对象组中优先级最高的,从而保证重要程度最高的数据对象被优先调度。
情况2、若确定当前存在上述第一数据对象的调度资源,说明当前可能存在正在被推送的任务也可能不存在正在被推送的任务,且存在用于执行第一数据对象的调度的资源,则执行S450:基于上述调度资源调度上述第一数据对象。
图4示出的第一数据对象的调度方法P400中,在对第一数据对象的调度过程中,若正在被调度的数据对象(第二数据对象)中存在重要程度低于该第一数据对象的可暂停数据对象,可以执行抢占式调度。从而保证重要程度更高的第一数据对象被优先调度。另一方面,若正在被调度的数据对象(第二数据对象)的重要程度均高于该第一数据对象,则不间断各第二数据对象的调度过程,同样用于保证重要程度更高的数据对象被优先调度。
在关于调度第一数据对象的上述情况1.2中,为了保证被暂停处理的数据对象被在此尽量高效地调度,本申请实施例还提供以下三种可以实现的断点续发方式。
方式1:
图5A为本申请实施例提供的可暂停数据对象的一种断点续发方法P500的流程示意图,其中,方法P500的执行主体也可以是如图1所示的服务器104,同前所述,服务器104中可以搭载有上述控制服务。
以下结合图5A介绍一种断点续发实施例,参考图5A,P500包括:
S510,记录并更新当前处于调度过程中的至少一个第二数据对象的调度进度信息。以及,S520,响应停止对上述可暂停数据对象的调度过程,停止对上述可暂停数据对象的调度进度信息进行更新。
参考图2,对于处于调度过程中的数据对象(记作“第二数据对象”),保持对其调度进度的记录与更新。例如,服务器104从数据库22的第二对象组获取待调度任务A,该任务需要被推送至10000台设备,其中5000台设备类型为手机、3000台设备为平板电脑,以及2000台设备为电视。则服务器104先将该任务根据其所推送的设备进行分片,即划分为三个子任务A1-A3,并将三个子任务分别计算优先级后写入数据库24,即更新至第一对象组中。进一步地,服务器104在接收到推送请求的情况下,获取到第一对象组中当前优先级最高的子任务A2并执行对子任务A2的调度过程。
服务器104在调度子任务A2过程中,同时还记录并更新关于子任务A2以及相关的任务A的进度信息。示例性的,将进度信息存储至数据库26。其中,进度信息例如包括:当前分片、总分片、通道等信息。例如当前分别信息为子任务A2已经被成功调度至2000台平板电脑,还需调度至其他1000台平板电脑;总分片信息可以为任务A2来自于任务A;通道信息为已经被成功调度至2000台平板电脑所采用的调度通道,等。示例性的,上述进度信息在redis数据库26中以hash结构存储,用以精确记录每个任务或子任务的调度进度信息,如参考表3。
表3
可以理解的是,数据对象的进度信息还可以存储至数据库mysql或者其它存储的方式,本申请实施例对此不做限定。
若动态更新后的第一对象组中出现优先级高于子任务A2的任务B,且该子任务A2被确定为上述可暂停数据对象并被暂停调度过程,则停止对上述可暂停数据对象的调度进度信息进行更新,因此在数据库26中所存储的关于子任务A2的进度信息为其最新进度信息。
其中,在存在一个第一数据对象以及一个第二数据对象的情况下,可以通过设置互斥锁的方式控制上述两数据对象的进度信息的更新。假如,第一数据对象的优先级高于第二数据对象,则响应暂停第二数据对象的调度,对更新第二数据对象的进度信息的线程解锁,对更新第一数据对象的进度信息的线程加锁,从而保证对正在被调度的第一数据对象进度信息进行更新而不对第二数据对象的进行更新,进而准确保存第二数据对象的最新进度信息。以在第一数据对象调度结束后且不存在其他高于该第二数据对象优先级的调度任务时,第二数据对象能够准确从断点处继续被执行调度。
继续参考图5,方法P500还包括:S530,在第一数据对象调度结束,且确定上述第一对象组中不存在优先级大于上述暂停数据对象的优先级的情况下,根据上述可暂停数据对象的最新的调度进度信息,对上述可暂停数据对象继续执行调度过程。
仍以上述任务B作为第一数据对象为例,同上所述,服务器停止对子任务A2的调度过程,并执行对任务B的调度过程。进一步地,在任务B被调度结束,且确定上述第一对象组中不存在优先级大于子任务A2的优先级的情况下,需继续执行对子任务A2的调度过程。具体地,基于根据上述数据库26中所存储的关于子任务A2的最新调度进度信息,对子任务A2继续执行调度过程。
通过图5A所示出的实施例可见,由于记录了第二数据对象(如上述子任务A2)的最新进度信息,因此即使在第二数据对象的下发过程中有可能被其它更高优先级的第一数据对象抢占,也会在调度资源恢复后,被高效准确地继续执行调度,有利于在整体上保证各个数据对象的调度时效性。同时,由于对每个第二数据对象(如上述子任务A2)分别记录了其最新进度信息,P500所提供的方案具有高的保障性,能够减少进度信息的遗漏。
方式2:
图5B为本申请实施例提供的可暂停数据对象的另一种断点续发方法P500’的流程示意图,其中,方法P500’的执行主体也可以是如图1所示的服务器104,同前所述,服务器104中可以搭载有上述控制服务。
以下结合图5B介绍一种断点续发实施例,参考图5B,P500’包括:
S510’,响应停止对可暂停数据对象的调度过程,保存上述可暂停数据对象的当前调度进度信息;以及,S520’,在第一数据对象调度结束,且确定第一对象组中不存在优先级大于上述暂停数据对象的优先级的情况下,根据上述可暂停数据对象的当前调度进度信息,对上述可暂停数据对象继续执行调度过程。
方法P500’所提供的方案与方法P500所提供方案的区别在于,对于处于调度过程中的第二数据对象,方法P500’并不记录或更新各个数据对象的进度信息。而是在某个第二数据对象被确定为可暂停数据对象并停止对其进行调度时,获取其进度信息并记录。P500’中对各个数据对象的进度信息的存储方式,与P500中对各个数据对象的进度信息的存储方式相同,同样可以保存被暂停各个数据对象的最新进度信息,以确保恢复调度资源且不被其他数据对象抢占的情况下,基于其最新进度信息来高效准确地继续被调度。同时,相较于方法P500所提供的方案,P500’所提供的方案占用更少的存储空间,有利于节省存储资源。
方式3:
将每个数据对象所有的待推送数据进行全量存储,在数据对象被调度的过程中,动态地将已经接收到数据的设备信息删除。例如,上述任务A对应于10000台接收设备的信息,在任务A被调度的过程中,动态地将已经接收到数据的设备信息删除,则剩下的为还未接收到数据的设备。若数据对象被确定为可暂停数据对象,在对其进行继续调度时,可以根据该任务对应的剩余设备信息实现继续调度。
可以理解的是,除了上述三种断点续发方案外,还可以时本领域可保障暂停数据对象顺利继续调度的其他方案。
上文对本申请实施例提供的数据对象的调度方法进行整体介绍。下面通过具体的实施例,对本申请实施例提供的数据对象的调度方法作进一步介绍。
图6为本申请另一实施例提供的基于图1中系统构架的数据对象的调度方案的流程示意图,具体包括图2中一些步骤的具体实现方式。图7为本申请实施例提供的数据对象的调度方案的时序示意图。
以下结合图6对本申请实施例提供的数据对象的调度方法作进一步介绍。
参考图6,搭载有管理服务的服务器(或如图1所示的终端102),执行S11:创建、审核数据对象;执行S12:将数据对象的基础信息写入数据库20;以及,执行S13:向搭载有控制服务的服务器(如图1中的服务器104)发送触发请求。
参考图6,搭载有控制服务的服务器执行S14-A(作为S14的一种具体实施方式):写接口将数据对象按天写入数据库22,得到第二对象组。可理解,第二对象组也是动态更新的。示例性的,在第二对象组中数据对象在数据库redis的以zset结构存储,如表4所示。
表4
字段 | 格式 | 含义 |
key | trigger_list | 列表固定key |
member | [任务ID] | 任务ID |
score | [时间戳] | 触发时间 |
进一步地,搭载有控制服务的服务器执行S15-A(作为S15的一种具体实施方式):轮询算法定时按条件查询第二对象组,具体可以根据数据对象的推送时间查询。具体地,对于满足推送时间的数据对象,可以进一步判断是否需要根据所指定的推送平台或设备或多个号码包下发的情况,将其进行拆分。对于不需要拆分的数据对象,直接将其确定为上述待调度数据对象;对于需要拆分的数据对象,对其按照所指定的推送平台或设备或多个号码包下发的情况拆为为多个子数据对象后,将多个子数据对象确定为待调度数据对象。
对于每个所确定的待调度数据对象,基于S310对应的实施例计算优先级。从而,在S16-A(作为S16的一种具体实施方式)中,按优先级/打分值写入数据库24,得到动态更新的第一对象组。示例性的,在第一对象组中数据对象在数据库redis的以zset结构存储,如表5所示。
表5
另外,搭载有调度服务的服务器/终端可以向服务器104发送推送请求(S17)。具体地,不同的请求方(记作租户)可以设置不同的请求设置,如请求方A要求第一时间段向平台1推动数据对象a,请求方b要求第二时间段向平台1推送数据对象b。从而不仅可以实现请求方的按需设置,同时还可以实现不同组合的资源隔离。
在接收到搭载有调度服务的服务器/终端发送的推送请求(S17)的情况下,搭载有控制服务的服务器一方面执行S18-A(作为S18的一种具体实施方式):按优先级/打分值读取第一对象组。另一方面还执行S18-B:从数据库60中获取即将被调度的数据对象(如,第一数据对象)对应的号码包总分片,以作为上述推送请求返回至搭载有调度服务的服务器/终端。其中,根据优先级确定第一数据对象更为具体的实施方式可以参考S330对应的实施例。进一步地,对第一数据对象进行调度,包括第一数据对象抢占调度以及可暂停数据对象的断点续发的具体实施方式,可以参考S340对应的实施例,在此不再赘述。
搭载有调度服务的服务器/终端,获取要待推送数据对象的具体分片信息后,执行S110-A:分片派发,即对不同的分片进行处理,针对每一个分片,获取分片下的用户及其设备信息。为了提高下发性能,可以采取并发的方式处理,如图6中分片1-分片3通过三个节点并行执行。具体地,在执行过程中还执行S110-B,多个节点可以并行的从数据库60获取到所需的用户信息。最后执行S110-C,各个节点并行地将处理后的信息下发,以分别按照各分片对应的场景进行相应处理,以实现对各数据对象的顺利推送。
以下结合图7对本申请实施例提供的数据对象的调度方法作进一步介绍。
参考图7,搭载有管理服务的服务器,执行S70:接收对数据对象创建信息;以及,执行S71,根据接收到的信息进行信息组装。示例性的,得到数据对象的基础信息,并可以将其保存至数据库20。进一步地,还执行S72,具体实施方式同图2或图6中的S13,在此不再赘述。
参考图7,搭载有控制服务的服务器,执行S73:将数据对象写入数据库的目标存储空间,得到列表1。具体实施方式同图6中的S14-A,在此不再赘述。还执行S74,定时查询列表1,以动态确定待调度数据对象。具体地,目标存储空间存储有第二对象组,上述第二对象组包含多个数据对象。通过轮询算法定时读取目标存储空间,以从上述第二对象组中获取当前时间满足预设推送时间的数据对象,得到上述待调度数据对象;或者,通过轮询算法定时读取目标存储空间,以从上述第二对象组中获取当前时间满足预设推送时间的数据对象,以及,对上述数据对象进行拆分得到子数据对象,将上述子数据对象确定为上述待调度数据对象。
参考图7,搭载有控制服务的服务器,执行S75:计算待调度数据对象的优先级,具体实施方式同S310,在此不再赘述。
参考图7,搭载有控制服务的服务器,执行S76:将包含优先级(具体可以是打分值)的待调度数据对象写入数据库,得到列表2。具体实施方式同S320,在此不再赘述
参考图7,搭载有控制服务的服务器,执行S77:接收搭载有控制服务的服务器发送的推送请求。且相应接收到该请求,执行S78:给予第一对象组确定第一数据对象,具体实施方式同S330,在此不再赘述。
参考图7,搭载有控制服务的服务器,执行S79:向数据库的列表3(数据结构如表3)记录并更新第二数据对象的进度信息。以及,执行S710,从列表3获取可暂停数据对象的进度信息,以继续执行被暂停数据对象的调度过程。S79和S710的具体实施方式可以参考图5A提供的断点续发实施例。
参考图7,搭载有控制服务的服务器,执行S711:获取在调度过程中的数据对象对应的号码包总分片,并进行信息组装后,执行S712:将可调度的数据对象的信息,作为推送请求的应答信息发送至搭载有调度服务的服务器。
参考图7,搭载有调度服务的服务器接收S712对应的信息,以及执行S712,从存储有用户信息的数据库(如图6中数据库60)获取用户信息;以及执行S714:推送。其中S713和S714的具体实施方式,可以参考图6中S110-A~S110-C,在此不再赘述。
本申请实施例提供的数据对象的调度方法,根据待调度数据对象的属性特征,确定该待调度数据对象的优先级,其中,由于上述每个待调度数据对象的自身属性特征计算确定的,因此每个待调度数据对象的优先级能够反映对应待调度数据对象的重要程度。进一步地,本申请实施例根据分别包含有优先级的多个待调度数据对象确定第一对象组,由于可能持续存在新的待调度数据对象的加入以及可能存在已经被调度的数据对象,因此上述第一对象组中包含的待调度数据对象为动态更新的。可以理解是的,上述第一对象组中最高优先级的待调度数据对象也是随之更新的。而本申请实施例根据上述第一对象组中待调度数据对象的优先级来确定第一数据对象,则可以根据第一对象组中动态更新的优先级(即,数据对象的重要程度)来确定优先被调度的数据对象,例如,可以将动态更新后最高优先级的待调度数据对象作为优先被调度的数据对象。可见,通过本申请实施例,可以避免重要程度更高的数据对象要等待重要程度较低的数据对象调度结束后才能够被调度的问题,能够提升较高重要程度数据对象的调度时效性。
上文结合图3至图7,详细描述了本申请的数据对象的调度方法实施例,下文结合图8,详细描述本申请的装置实施例。
图8是本申请一实施例提供的数据对象的调度装置的示意性框图。如图8所示,数据对象的调度装置800包括:优先级确定模块810、对象组确定模块820、第一数据对象确定模块830以及数据对象调度模块840;
其中,上述优先级确定模块810,用于根据待调度数据对象的属性特征,确定所述待调度数据对象的优先级;上述对象组确定模块820,将包含有优先级的待调度数据对象,添加入第一对象组,其中,所述第一对象组中包含的待调度数据对象为动态更新的;上述第一数据对象确定模块830,用于根据所述第一对象组中待调度数据对象分别所对应的优先级,确定第一数据对象;以及,上述数据对象调度模块840,用于调度所述第一数据对象。
在一些实施例中,基于前述方案,上述第一数据对象确定模块830,具体用于:将上述第一对象组中当前优先级最高的至少一个待调度数据对象,确定为第一数据对象。
在一些实施例中,基于前述方案,上述数据对象调度模块840,包括:调度资源确定单元、可暂停数据对象确定单元以及调度单元。
其中,上述调度资源确定单元用于:确定当前是否存在上述第一数据对象的调度资源;上述可暂停数据对象确定单元用于:若确定当前不存在上述第一数据对象的调度资源,则确定当前处于调度过程中的至少一个第二数据对象中是否存在可暂停数据对象,其中上述可暂停数据对象的优先级小于上述第一数据对象的优先级;以及,上述调度单元用于:若确定存在上述可暂停数据对象,则停止对上述可暂停数据对象的调度过程,并通过上述可暂停数据对象对应的调度资源,对上述第一数据对象进行调度。
在一些实施例中,基于前述方案,上述数据对象的调度装置800还包括:更新模块。
其中,上述更新模块用于:记录并更新上述至少一个第二数据对象的调度进度信息;上述更新模块还用于:响应停止对上述可暂停数据对象的调度过程,停止对上述可暂停数据对象的调度进度信息进行更新;以及,上述数据对象调度模块840还用于:在上述第一数据对象调度结束,且确定上述第一对象组中不存在优先级大于上述暂停数据对象的优先级的情况下,根据上述可暂停数据对象的最新的调度进度信息,对上述可暂停数据对象继续执行调度过程。
在一些实施例中,基于前述方案,上述数据对象的调度装置800还包括:保存模块。
其中,上述保存模块用于:响应停止对上述可暂停数据对象的调度过程,保存上述可暂停数据对象的当前调度进度信息;以及,上述数据对象调度模块840还用于:在上述第一数据对象调度结束,且确定上述第一对象组中不存在优先级大于上述暂停数据对象的优先级的情况下,根据上述可暂停数据对象的当前调度进度信息,对上述可暂停数据对象继续执行调度过程。
在一些实施例中,基于上述方案,上述数据对象调度模块840还用于:上述可暂停数据对象确定单元确定当前处于调度过程中的至少一个第二数据对象中是否存在可暂停数据对象之后,若确定不存在上述可暂停数据对象,则不间断执行上述至少一个第二数据对象的调度过程。
在一些实施例中,基于上述方案,上述数据对象调度模块840还用于:在上述调度资源确定单元确定当前是否存在上述第一数据对象的调度资源之后,若确定当前存在上述第一数据对象的调度资源,则基于上述调度资源调度上述第一数据对象。
在一些实施例中,基于上述方案,上述属性特征的类型包括以下信息中的一种或多种:调度紧急度、待调度数据对象的类型以及调度目的地。
在一些实施例中,基于上述方案,不同类型的属性特征对应于不同的影响级别;
上述优先级确定模块810,包括:计算次序确定单元和优先权计算单元。
其中,上述计算次序确定单元用于:根据N个类型的属性特征分别的影响级别,确定计算次序,上述N取值为正整数;以及,上述优先级计算单元用于:基于上述计算次序,根据上述N个类型的属性特征依次执行N轮计算,得到上述待调度数据对象的打分值,其中上述打分值用于确定上述待调度数据对象的优先级。
在一些实施例中,基于上述方案,属于同一类型的不同属性特征对应于不同的权重;上述优先级计算单元执行第i轮计算包括:根据第i-1轮计算的结果和第i个类型的属性特征对应的权重,确定上述第i轮计算的结果。
在一些实施例中,基于上述方案,上述对象组确定模块820,具体用于:根据上述待调度数据对象对应的优先级,将上述待调度数据对象保存至第一存储空间,得到第一对象组。
在一些实施例中,基于上述方案,目标存储空间存储有第二对象组,上述第二对象组包含多个数据对象;上述数据对象的调度装置800还包括:待调度数据对象确定模块。
其中,上述待调度数据对象确模块用于:通过轮询算法定时读取目标存储空间,以从上述第二对象组中获取当前时间满足预设推送时间的数据对象,得到上述待调度数据对象;或者,通过轮询算法定时读取目标存储空间,以从上述第二对象组中获取当前时间满足预设推送时间的数据对象,以及,对上述数据对象进行拆分得到子数据对象,将上述子数据对象确定为上述待调度数据对象。
应理解的是,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,图8所示的装置可以执行上述数据对象的调度方法的实施例,并且装置中的各个模块的前述和其它操作和/或功能分别为了实现主节点组中的节点对应的方法实施例,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
图9为本申请实施例提供的电子设备的示意性框图,图9的电子设备可以用于执行上述数据对象的调度方法,该电子设备可以为上述搭载有控制服务的服务器(如图1中服务器104)。
如图9所示,该电子设备900可包括:
存储器910和处理器920,该存储器910用于存储计算机程序930,并将该程序代码33传输给该处理器920。换言之,该处理器920可以从存储器910中调用并运行计算机程序930,以实现本申请实施例中的方法。
例如,该处理器920可用于根据该计算机程序930中的指令执行上述方法中的步骤。
在本申请的一些实施例中,该处理器920可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器910包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序930可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器910中,并由该处理器920执行,以完成本申请提供的录制页面的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序930在该电子设备中的执行过程。
如图9所示,该电子设备900还可包括:
收发器940,该收发器940可连接至该处理器920或存储器910。
其中,处理器920可以控制该收发器940与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。收发器940可以包括发射机和接收机。收发器940还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备900中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (14)
1.一种数据对象的调度方法,其特征在于,所述方法包括:
根据待调度数据对象的属性特征,确定所述待调度数据对象的优先级;
将包含有优先级的待调度数据对象,添加入第一对象组,其中,所述第一对象组中包含的待调度数据对象为动态更新的;
根据所述第一对象组中待调度数据对象分别所对应的优先级,确定第一数据对象;以及
调度所述第一数据对象。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一对象组中待调度数据对象分别所对应的优先级,确定第一数据对象,包括:
将所述第一对象组中当前优先级最高的至少一个待调度数据对象,确定为第一数据对象。
3.根据权利要求2所述的方法,其特征在于,所述调度所述第一数据对象,包括:
若确定当前不存在所述第一数据对象的调度资源,则确定当前处于调度过程中的至少一个第二数据对象中是否存在可暂停数据对象,其中所述可暂停数据对象的优先级小于所述第一数据对象的优先级;以及
若确定存在所述可暂停数据对象,则停止对所述可暂停数据对象的调度过程,并通过所述可暂停数据对象对应的调度资源,对所述第一数据对象进行调度。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
记录并更新所述至少一个第二数据对象的调度进度信息;
响应停止对所述可暂停数据对象的调度过程,停止对所述可暂停数据对象的调度进度信息进行更新;以及
在所述第一数据对象调度结束,且确定所述第一对象组中不存在优先级大于所述暂停数据对象的优先级的情况下,根据所述可暂停数据对象的最新的调度进度信息,对所述可暂停数据对象继续执行调度过程。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应停止对所述可暂停数据对象的调度过程,保存所述可暂停数据对象的当前调度进度信息;以及
在所述第一数据对象调度结束,且确定所述第一对象组中不存在优先级大于所述暂停数据对象的优先级的情况下,根据所述可暂停数据对象的当前调度进度信息,对所述可暂停数据对象继续执行调度过程。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若确定不存在所述可暂停数据对象,则不间断执行所述至少一个第二数据对象的调度过程。
7.根据权利要求2所述的方法,其特征在于,所述调度所述第一数据对象,包括:
若确定当前存在所述第一数据对象的调度资源,则基于所述调度资源调度所述第一数据对象。
8.根据权利要求1所述的方法,其特征在于,所述属性特征的类型包括以下信息中的一种或多种:调度紧急度、待调度数据对象的类型以及调度目的地。
9.根据权利要求1所述的方法,其特征在于,不同类型的属性特征对应于不同的影响级别;
所述根据待调度数据对象的属性特征,确定所述待调度数据对象的优先级,包括:
根据N个类型的属性特征分别的影响级别,确定计算次序,所述N取值为正整数;以及
基于所述计算次序,根据所述N个类型的属性特征依次执行N轮计算,得到所述待调度数据对象的打分值,其中所述打分值用于确定所述待调度数据对象的优先级。
10.根据权利要求9所述的方法,其特征在于,属于同一类型的不同属性特征对应于不同的权重;第i轮计算包括:
根据第i-1轮计算的结果和第i个类型的属性特征对应的权重,确定所述第i轮计算的结果。
11.根据权利要求1所述的方法,其特征在于,目标存储空间存储有第二对象组,所述第二对象组包含多个数据对象;
在所述根据待调度数据对象的属性特征,确定所述待调度数据对象的优先级之前,所述方法还包括:
通过轮询算法定时读取目标存储空间,以从所述第二对象组中获取当前时间满足预设推送时间的数据对象,得到所述待调度数据对象;或者
通过轮询算法定时读取目标存储空间,以从所述第二对象组中获取当前时间满足预设推送时间的数据对象,以及,对所述数据对象进行拆分得到子数据对象,将所述子数据对象确定为所述待调度数据对象。
12.一种数据对象的调度装置,其特征在于,所述装置包括:
优先级确定模块,用于根据待调度数据对象的属性特征,确定所述待调度数据对象的优先级;
对象组确定模块,用于将包含有优先级的待调度数据对象,添加入第一对象组,其中,所述第一对象组中包含的待调度数据对象为动态更新的;
第一数据对象确定模块,用于根据所述第一对象组中待调度数据对象分别所对应的优先级,确定第一数据对象;以及
数据对象调度模块,用于调度所述第一数据对象。
13.一种电子设备,包括处理器和存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序以实现如上述权利要求1至11任一项所述的数据对象的调度方法。
14.一种计算机可读存储介质,其特征在于,用于存储计算机程序;
所述计算机程序使得计算机执行如上述权利要求1至11任一项所述的数据对象的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311479770.4A CN117725335A (zh) | 2023-11-07 | 2023-11-07 | 数据对象的调度方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311479770.4A CN117725335A (zh) | 2023-11-07 | 2023-11-07 | 数据对象的调度方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117725335A true CN117725335A (zh) | 2024-03-19 |
Family
ID=90204177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311479770.4A Pending CN117725335A (zh) | 2023-11-07 | 2023-11-07 | 数据对象的调度方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117725335A (zh) |
-
2023
- 2023-11-07 CN CN202311479770.4A patent/CN117725335A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102240557B1 (ko) | 데이터 저장 방법, 장치 및 시스템 | |
CN111344706B (zh) | 管理区块链上的交易的方法和系统 | |
CN111309732B (zh) | 数据处理方法、装置、介质和计算设备 | |
US10715460B2 (en) | Opportunistic resource migration to optimize resource placement | |
CN109491801B (zh) | 微服务访问调度方法、装置、介质及电子设备 | |
US10469405B2 (en) | Network-accessible data volume modification | |
US9445162B2 (en) | Interactive personal/internet protocol television reservation system, reservation plan management method and device | |
US11475006B2 (en) | Query and change propagation scheduling for heterogeneous database systems | |
CN107451853B (zh) | 一种红包实时派发的方法、装置、系统及存储介质 | |
CN103516585A (zh) | 一种实现消息优先级分发的方法及系统 | |
CN116304390B (zh) | 时序数据处理方法、装置、存储介质及电子设备 | |
CN110673959A (zh) | 用于处理任务的系统、方法和装置 | |
US11567814B2 (en) | Message stream processor microbatching | |
CN113761052A (zh) | 数据库同步方法和装置 | |
CN117725335A (zh) | 数据对象的调度方法、装置、设备及计算机可读存储介质 | |
US10169081B2 (en) | Use of concurrent time bucket generations for scalable scheduling of operations in a computer system | |
US11199994B1 (en) | Decoupling data request rate from hardware medium for archival data storage devices | |
US11121981B1 (en) | Optimistically granting permission to host computing resources | |
US8705537B1 (en) | Eventually-consistent data stream consolidation | |
US10664307B1 (en) | System and method for assigning tasks to computer system elements | |
CN114168306B (zh) | 调度方法及调度装置 | |
KR102256361B1 (ko) | 데이터의 접근 제어를 위한 네트워크 장치 및 방법, 그리고 이를 이용한 데이터 접근 제어 시스템 | |
US12047305B2 (en) | Using multi-phase constraint programming to assign resource guarantees of consumers to hosts | |
US11972312B2 (en) | Data synchronization without middleware | |
JP2013200601A (ja) | データベースシステム、データベースシステムにおけるコミット方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |