一种针对海量任务的数据回写方法、装置、设备及介质与流程
未命名
09-12
阅读:86
评论:0

1.本发明涉及数据回写技术领域,尤其涉及一种针对海量任务的数据回写方法、装置、设备及介质。
背景技术:
2.任务回写系统能够将第三方平台返回的任务,经由任务分配中心回写至数据库中。
3.但部分第三方平台由于业务需求原因,可能会同时返回海量的写回数据,例如电商平台,若将这些海量的写回数据同时写回到数据库中,对系统负载压力较大,并且在灾难演练时,若未写回数据库的回写任务量较大,还会导致灾难演练后数据恢复时间过长,降低系统稳定性,并且会影响第三方平台的用户正常的平台使用。
技术实现要素:
4.本发明提供了一种针对海量任务的数据回写方法、装置、设备及介质,能够实现对于海量的回写任务分批次回写,避免由于同一时刻回写任务过多从而导致的灾难演练数据恢复时间过长,保证了系统的稳定性。
5.根据本发明的一方面,提供了一种针对海量任务的数据回写方法,包括:
6.每当检测到待处理的目标回写任务时,判断所述目标回写任务是否为需要实时写入至数据库;
7.若是,则将目标回写任务实时写入到数据库中,否则,在预设的轮盘数组中确定目标切片,并在目标切片满足暂存条件时,将该回写任务写入所述目标切片中;
8.其中,所述轮盘数组与设定索引指针相对应,该索引指针指向轮盘数组中待写入至数据库中的切片;
9.每当检测到索引指针发生指向切换时,将索引指针的当前指向切片中暂存的数据写入至所述数据库中。
10.根据本发明的另一方面,提供了一种针对海量任务的数据回写装置,包括:
11.目标回写任务检测模块,用于每当检测到待处理的目标回写任务时,判断所述目标回写任务是否为需要实时写入至数据库;
12.目标切片确定模块,用于若是,则将目标回写任务实时写入到数据库中,否则,在预设的轮盘数组中确定目标切片,并在目标切片满足暂存条件时,将该回写任务写入所述目标切片中;
13.其中,所述轮盘数组与设定索引指针相对应,该索引指针指向轮盘数组中待写入至数据库中的切片;
14.数据写入模块,用于每当检测到索引指针发生指向切换时,将索引指针的当前指向切片中暂存的数据写入至所述数据库中。
15.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
16.至少一个处理器;以及
17.与所述至少一个处理器通信连接的存储器;其中,
18.所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的针对海量任务的数据回写方法。
19.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的针对海量任务的数据回写方法。
20.本发明实施例的技术方案,通过判断目标回写任务是否需要实时写入数据库,并将需要实时写入数据库的任务实时回写,将不需要实时写入数据库的任务存入到目标切片中,等到索引指针指向目标切片时,将目标切片内的任务写入到数据库中的方式,能够实现在海量的回写任务需要回写时,将回写任务分批回写,避免由于同一时刻回写任务过多从而导致的灾难演练数据恢复时间过长,保证了系统的稳定性。
21.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
22.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
23.图1是根据本发明实施例一提供的一种针对海量任务的数据回写方法的流程图;
24.图2是根据本发明实施例二提供的另一种针对海量任务的数据回写方法的流程图;
25.图3是根据本发明实施例三提供的一种针对海量任务的数据回写装置的结构示意图;
26.图4是实现本发明实施例的针对海量任务的数据回写方法的电子设备的结构示意图。
具体实施方式
27.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
28.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆
盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.实施例一
30.图1为本发明实施例一提供的一种针对海量任务的数据回写方法的流程图,本实施例可适用于将回写任务写入轮盘数组中适合的切片中,并根据索引指针的指向将各切片中的数据回写的情况,该方法可以由针对海量任务的数据回写装置来执行,该针对海量任务的数据回写装置可以采用硬件和/或软件的形式实现,该针对海量任务的数据回写装置可配置于具备数据处理功能的任务分配中心中。如图1所示,该方法包括:
31.s110、每当检测到待处理的目标回写任务时,判断目标回写任务是否为需要实时写入至数据库。
32.可选的,回写任务可以指交互平台在执行任务之后,将任务及任务执行结果反馈到任务分配中心,并由任务分配中心回写到数据库中。对于部分回写数据量较大的平台,例如电商平台,若大量的回写任务同时回写入数据库,会在一定程度上降低系统的稳定性,且当系统进行灾难演练时,大批量的回写任务需要更长的恢复时间,从而影响交互平台侧的用户正常使用交互平台。因此,本发明创造性的提出了,将大批量的回写任务分批次写回,从而使得回写任务的分配较为平均,尽量避免同一时刻大量回写任务同时写回。
33.其中,目标回写任务可以指当前返回到任务分配中心的待处理的回写任务,回写任务中可以包括该回写任务的执行结果信息。
34.可选的,目标回写任务可预先划分为无延迟任务、低延迟任务以及允许延迟任务。无延迟任务需要在任务返回时立即写入到数据库中,无延迟任务不允许重复执行,例如,系统的授权信息与平台交互的情况,无延迟任务还可以为通知类的任务或用户浏览器端发起的交互性任务,例如,批量审单的场景。低延迟任务允许短时间内重复调度,但批量状态长时间不能丢失,短时间内少量状态的丢失并不影响系统的正常调度,低延迟任务还可以包括重复作业会对系统的负载造成一定影响的高资源任务。允许延迟任务的状态的丢失,一般对作业系统的影响较小,且允许延迟的任务在重新作业时一般不会对系统的负载造成较大负担。
35.进一步的,无延迟任务可以确定为需要实时写入数据库的任务,此外,当回写任务的执行结果信息异常时,无需考虑该回写任务是否为无延迟任务,该回写任务也可以为需要实时写入数据库的任务。低延迟任务以及允许延迟任务一般可以延迟一段时间后写入数据库中,对于此类任务,其一般具有初始的可延迟时间以及初始的可执行次数,并从该任务第一次写入任务分配中心之后,开始计算该任务的剩余可延迟时间以及剩余可执行次数,当该任务的剩余可延迟时间或剩余可执行次数二者之一近似于0或等于0时,该任务需要实时写入数据库中。也可以通过设置阈值的方式,当剩余可延迟时间或剩余可执行次数二者之一小于与其分别匹配的阈值时,该任务需要实时写入到数据库中。
36.s120、若是,则将目标回写任务实时写入到数据库中,否则,在预设的轮盘数组中确定目标切片,并在目标切片满足暂存条件时,将该回写任务写入目标切片中。
37.其中,所述轮盘数组与设定索引指针相对应,该索引指针指向轮盘数组中待写入至数据库中的切片。
38.可以理解的是,在任务分配中心中配置有轮盘数组,轮盘数组中包括多个顺次连接的切片,每个切片以堆栈形式构成,回写任务可存储在堆栈中。当索引指针指向轮盘数组的某个切片时,该切片的堆栈中存储的全部回写任务可实时写入到数据库中。索引指针根据轮盘数组中切片排列顺序,按序切换指向切片。
39.可选的,目标切片为目标回写任务根据预设的切片选择规则在轮盘数组中选取的可存储切片,当目标切片的内存堆栈中存在剩余存储空间,能够存储目标回写任务时,则目标切片满足暂存条件。
40.s130、每当检测到索引指针发生指向切换时,将索引指针的当前指向切片中暂存的数据写入至数据库中。
41.可选的,可以预设一个时间间隔,索引指针经过预设的时间间隔,由当前指向切片切换到下一指向切片。
42.可选的,当下一指向切片的内存堆栈内已经全部存满,可无需经过预设的时间间隔再写入下一指向切片内的数据,可在当前指向切片的数据写完之后,直接写入下一指向切片内的数据。
43.本发明实施例的技术方案,通过判断目标回写任务是否需要实时写入数据库,并将需要实时写入数据库的任务实时回写,将不需要实时写入数据库的任务存入到目标切片中,等到索引指针指向目标切片时,将目标切片内的任务写入到数据库中的方式,能够实现在海量的回写任务需要回写时,将回写任务分批回写,避免由于同一时刻回写任务过多从而导致的灾难演练数据恢复时间过长,保证了系统的稳定性。
44.实施例二
45.图2为本发明实施例二提供的一种针对海量任务的数据回写方法的流程图,本实施例在上述实施例的基础上,具体说明了针对海量任务的数据回写方法。如图2所示,该方法包括:
46.s210、获取任务回写系统中任务回写的最长延迟时间以及预设的切片写入间隔时间,并根据任务回写的最长延迟时间以及预设的切片写入间隔时间计算得到轮盘数组中的切片数量。
47.在一个具体的例子中,当任务回写系统中任务回写的最长延迟时间为15分钟,预设的切片写入间隔时间为200ms时,切片数量可以为15*60*5=4500,60代表60秒,5代表当写入间隔时间为200ms时,1分钟可写入5个切片,设置4500个切片能够保证在将轮盘数组中的每一个切片都写入一次数据库中的时间,不超过最长延迟时间15分钟。
48.可以理解的是,任务回写系统中任务回写的最长延迟时间以及切片写入间隔时间,均可以根据实际情况设定,并不对该时间进行具体限制。
49.s220、获取满足切片数量的多个切片,组合构成轮盘数组。
50.s230、每当检测到待处理的目标回写任务时,判断目标回写任务是否为需要实时写入至数据库;若是,执行s240;若否,执行s250。
51.其中,每当检测到待处理的目标回写任务时,判断所述目标回写任务是否为需要实时写入至数据库,可以包括:
52.当目标回写任务的任务类型为无延迟或目标回写任务的任务执行结果为失败状态时,确定目标回写任务需要实时写入到数据库中;
53.当目标回写任务的任务类型为低延迟或允许延迟,且目标回写任务的执行结果为成功状态时,确定目标回写任务不需要实时写入到数据库中。
54.s240、将目标回写任务实时写入到数据库中。
55.s250、在预设的轮盘数组中确定目标切片,并在目标切片满足暂存条件时,将该回写任务写入所述目标切片中。
56.其中,在在预设的轮盘数组中确定目标切片之前,还可以包括:
57.判断目标回写任务是否为第一次回写任务;
58.若是,则获取目标回写任务的最大延迟时间作为剩余延迟时间;
59.若否,则根据目标回写任务的最大延迟时间、目标回写任务的上一次回写时间以及当前时间,计算得到目标回写任务的剩余延迟时间。
60.其中,在预设的轮盘数组中确定目标切片,可以包括:
61.当目标回写任务的剩余延迟时间小于预设的延迟阈值,和/或目标回写任务的剩余执行次数为0时,将索引指针的当前指向切片作为目标切片;
62.当目标回写任务的剩余延迟时间大于或等于预设的延迟阈值,且目标回写任务的剩余执行次数不为0时,根据目标回写任务剩余的延迟时间、索引指针的当前指向切片以及切片写入间隔时间,在轮盘数组中确定目标切片。
63.可以理解的是,不需要实时回写的任务,可能在存入到目标切片之后,还会从目标切片中取出再次重复执行该任务。当可延迟的任务剩余延迟时间为0和/或剩余执行次数为0时,该可延迟任务需要实时写入数据库中,将索引指针的当前指向切片作为目标切片。当可延迟任务的剩余执行次数不为0时,则根据其剩余延迟时间、索引指针的当前指向切片以及切片写入间隔时间,在轮盘数组中确定目标切片。
64.续前例,当可延迟任务的剩余执行次数不为0,其剩余延迟时间为1分钟,且当前索引指针指向轮盘数组中的第100切片时,目标切片应该由第100个切片向后数1*60*5=300,即轮盘数组中的第400个切片为该任务的目标切片。
65.其中,在将索引指针的当前指向切片作为目标切片之后,还可以包括:
66.当检测到目标切片内的内存堆栈已满时,将目标切片内的任务实时写入数据库中,并将索引指针指向目标切片的下一切片;
67.将目标任务写入目标切片后的下一个内存堆栈未满的切片内。
68.其中,在根据目标回写任务剩余的延迟时间、索引指针的当前指向切片以及切片写入间隔时间,在轮盘数组中确定目标切片之后,还可以包括:
69.当检测到目标切片内的内存堆栈已满时,将目标回写任务写入目标切片后的下一个内存堆栈未满的切片内。
70.s260、每当检测到索引指针发生指向切换时,将索引指针的当前指向切片中暂存的数据写入至数据库中。
71.本发明实施例的技术方案,通过判断目标回写任务是否需要实时写入数据库,并将需要实时写入数据库的任务实时回写,将不需要实时写入数据库的任务存入到目标切片中,等到索引指针指向目标切片时,将目标切片内的任务写入到数据库中的方式,能够实现在海量的回写任务需要回写时,将回写任务分批回写,避免由于同一时刻回写任务过多从而导致的灾难演练数据恢复时间过长,保证了系统的稳定性。
72.进一步的,针对海量任务的数据回写方法,还可以包括:
73.在接收到任务分配中心发送的重启指令之后,将轮盘数组内全部任务写入到数据库中。
74.这样设置的好处在于:通过在接收到任务分配中心发送的重启指令之后,将轮盘数组内全部任务写入到数据库中的方式,能够避免由于系统重启所导致的数据丢失情况发生。
75.实施例三
76.图3为本发明实施例三提供的一种针对海量任务的数据回写装置的结构示意图。如图3所示,该装置包括:目标回写任务检测模块310、目标切片确定模块320以及数据写入模块330。
77.目标回写任务检测模块310,用于每当检测到待处理的目标回写任务时,判断目标回写任务是否为需要实时写入至数据库。
78.目标切片确定模块320,用于若是,则将目标回写任务实时写入到数据库中,否则,在预设的轮盘数组中确定目标切片,并在目标切片满足暂存条件时,将该回写任务写入目标切片中。
79.其中,轮盘数组与设定索引指针相对应,该索引指针指向轮盘数组中待写入至数据库中的切片。
80.数据写入模块330,用于每当检测到索引指针发生指向切换时,将索引指针的当前指向切片中暂存的数据写入至数据库中。
81.本发明实施例的技术方案,通过判断目标回写任务是否需要实时写入数据库,并将需要实时写入数据库的任务实时回写,将不需要实时写入数据库的任务存入到目标切片中,等到索引指针指向目标切片时,将目标切片内的任务写入到数据库中的方式,能够实现在海量的回写任务需要回写时,将回写任务分批回写,避免由于同一时刻回写任务过多从而导致的灾难演练数据恢复时间过长,保证了系统的稳定性。
82.在上述各实施例的基础上,目标回写任务检测模块310,可以具体用于:
83.当目标回写任务的任务类型为无延迟或目标回写任务的任务执行结果为失败状态时,确定目标回写任务需要实时写入到数据库中;
84.当目标回写任务的任务类型为低延迟或允许延迟,且目标回写任务的执行结果为成功状态时,确定目标回写任务不需要实时写入到数据库中。
85.在上述各实施例的基础上,还可以包括轮盘数组生成模块,具体用于:
86.获取任务回写系统中任务回写的最长延迟时间以及预设的切片写入间隔时间,并根据任务回写的最长延迟时间以及预设的切片写入间隔时间计算得到轮盘数组中的切片数量;
87.获取满足所述切片数量的多个切片,组合构成轮盘数组。
88.在上述各实施例的基础上,目标切片确定模块320可以包括目标切片选取单元,具体用于:
89.当目标回写任务的剩余延迟时间小于预设的延迟阈值,和/或目标回写任务的剩余执行次数为0时,将索引指针的当前指向切片作为目标切片;
90.当目标回写任务的剩余延迟时间大于或等于预设的延迟阈值,且目标回写任务的
剩余执行次数不为0时,根据目标回写任务剩余的延迟时间、索引指针的当前指向切片以及切片写入间隔时间,在轮盘数组中确定目标切片。
91.在上述各实施例的基础上,目标切片确定模块320还可以包括剩余延迟时间获取单元,具体用于:
92.判断目标回写任务是否为第一次回写任务;
93.若是,则获取目标回写任务的最大延迟时间作为剩余延迟时间;
94.若否,则根据目标回写任务的最大延迟时间、目标回写任务的上一次回写时间以及当前时间,计算得到目标回写任务的剩余延迟时间。
95.在上述各实施例的基础上,还可以包括切片变更单元,可以具体用于,在将索引指针的当前指向切片作为目标切片之后:
96.当检测到目标切片内的内存堆栈已满时,将目标切片内的任务实时写入数据库中,并将索引指针指向目标切片的下一切片;
97.将目标任务写入目标切片后的下一个内存堆栈未满的切片内。
98.在上述各实施例的基础上,还可以包括切片变更单元,还可以具体用于,在根据目标回写任务剩余的延迟时间、索引指针的当前指向切片以及切片写入间隔时间,在轮盘数组中确定目标切片之后:
99.当检测到目标切片内的内存堆栈已满时,将目标回写任务写入目标切片后的下一个内存堆栈未满的切片内。
100.在上述各实施例的基础上,还可以包括重启模块,具体用于:
101.在接收到任务分配中心发送的重启指令之后,将轮盘数组内全部任务写入到数据库中。
102.本发明实施例所提供的针对海量任务的数据回写装置可执行本发明任意实施例所提供的针对海量任务的数据回写方法,具备执行方法相应的功能模块和有益效果。
103.实施例四
104.图4示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
105.如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(rom)12、随机访问存储器(ram)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(rom)12中的计算机程序或者从存储单元18加载到随机访问存储器(ram)13中的计算机程序,来执行各种适当的动作和处理。在ram 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、rom 12以及ram 13通过总线14彼此相连。输入/输出(i/o)接口15也连接至总线14。
106.电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸
如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
107.处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如如本发明实施例所述的针对海量任务的数据回写方法。也即:
108.每当检测到待处理的目标回写任务时,判断所述目标回写任务是否为需要实时写入至数据库;
109.若是,则将目标回写任务实时写入到数据库中,否则,在预设的轮盘数组中确定目标切片,并在目标切片满足暂存条件时,将该回写任务写入所述目标切片中;
110.其中,所述轮盘数组与设定索引指针相对应,该索引指针指向轮盘数组中待写入至数据库中的切片;
111.每当检测到索引指针发生指向切换时,将索引指针的当前指向切片中暂存的数据写入至所述数据库中。
112.在一些实施例中,针对海量任务的数据回写方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram 13并由处理器11执行时,可以执行上文描述的针对海量任务的数据回写方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行针对海量任务的数据回写方法。
113.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
114.用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
115.在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只
读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
116.为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
117.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
118.计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
119.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
120.上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
技术特征:
1.一种针对海量任务的数据回写方法,其特征在于,包括:每当检测到待处理的目标回写任务时,判断所述目标回写任务是否为需要实时写入至数据库;若是,则将目标回写任务实时写入到数据库中,否则,在预设的轮盘数组中确定目标切片,并在目标切片满足暂存条件时,将该回写任务写入所述目标切片中;其中,所述轮盘数组与设定索引指针相对应,该索引指针指向轮盘数组中待写入至数据库中的切片;每当检测到索引指针发生指向切换时,将索引指针的当前指向切片中暂存的数据写入至所述数据库中。2.根据权利要求1所述的方法,其特征在于,每当检测到待处理的目标回写任务时,判断所述目标回写任务是否为需要实时写入至数据库,包括:当目标回写任务的任务类型为无延迟或目标回写任务的任务执行结果为失败状态时,确定目标回写任务需要实时写入到数据库中;当目标回写任务的任务类型为低延迟或允许延迟,且目标回写任务的执行结果为成功状态时,确定目标回写任务不需要实时写入到数据库中。3.根据权利要求1所述的方法,其特征在于,在每当检测到待处理的目标回写任务时,判断所述目标回写任务是否为需要实时写入至数据库之前,还包括:获取任务回写系统中任务回写的最长延迟时间以及预设的切片写入间隔时间,并根据任务回写的最长延迟时间以及预设的切片写入间隔时间计算得到轮盘数组中的切片数量;获取满足所述切片数量的多个切片,组合构成轮盘数组。4.根据权利要求1所述的方法,其特征在于,在预设的轮盘数组中确定目标切片,包括:当目标回写任务的剩余延迟时间小于预设的延迟阈值,和/或目标回写任务的剩余执行次数为0时,将索引指针的当前指向切片作为目标切片;当目标回写任务的剩余延迟时间大于或等于预设的延迟阈值,且目标回写任务的剩余执行次数不为0时,根据目标回写任务剩余的延迟时间、索引指针的当前指向切片以及切片写入间隔时间,在轮盘数组中确定目标切片。5.根据权利要求1所述的方法,其特征在于,在在预设的轮盘数组中确定目标切片之前,还包括:判断目标回写任务是否为第一次回写任务;若是,则获取目标回写任务的最大延迟时间作为剩余延迟时间;若否,则根据目标回写任务的最大延迟时间、目标回写任务的上一次回写时间以及当前时间,计算得到目标回写任务的剩余延迟时间。6.根据权利要求4所述的方法,其特征在于,在将索引指针的当前指向切片作为目标切片之后,还包括:当检测到目标切片内的内存堆栈已满时,将目标切片内的任务实时写入数据库中,并将索引指针指向目标切片的下一切片;将目标任务写入目标切片后的下一个内存堆栈未满的切片内;在根据目标回写任务剩余的延迟时间、索引指针的当前指向切片以及切片写入间隔时间,在轮盘数组中确定目标切片之后,还包括:
当检测到目标切片内的内存堆栈已满时,将目标回写任务写入目标切片后的下一个内存堆栈未满的切片内。7.根据权利要求1所述的方法,其特征在于,还包括:在接收到任务分配中心发送的重启指令之后,将轮盘数组内全部任务写入到数据库中。8.一种针对海量任务的数据回写装置,其特征在于,包括:目标回写任务检测模块,用于每当检测到待处理的目标回写任务时,判断所述目标回写任务是否为需要实时写入至数据库;目标切片确定模块,用于若是,则将目标回写任务实时写入到数据库中,否则,在预设的轮盘数组中确定目标切片,并在目标切片满足暂存条件时,将该回写任务写入所述目标切片中;其中,所述轮盘数组与设定索引指针相对应,该索引指针指向轮盘数组中待写入至数据库中的切片;数据写入模块,用于每当检测到索引指针发生指向切换时,将索引指针的当前指向切片中暂存的数据写入至所述数据库中。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明权利要求1-7中任一项所述的针对海量任务的数据回写方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的针对海量任务的数据回写方法。
技术总结
本发明公开了一种针对海量任务的数据回写方法、装置、设备及介质。该方法包括:每当检测到待处理的目标回写任务时,判断目标回写任务是否为需要实时写入至数据库;若是,则将目标回写任务实时写入到数据库中,否则,在预设的轮盘数组中确定目标切片,并在目标切片满足暂存条件时,将该回写任务写入目标切片中;其中,轮盘数组与设定索引指针相对应,该索引指针指向轮盘数组中待写入至数据库中的切片;每当检测到索引指针发生指向切换时,将索引指针的当前指向切片中暂存的数据写入至数据库中。采用上述技术方案,能够实现对于海量的回写任务分批次回写,避免由于同一时刻回写任务过多从而导致的灾难演练数据恢复时间过长,保证了系统的稳定性。系统的稳定性。系统的稳定性。
技术研发人员:李吴杰 高孝顺 骆海东 颜嘉梁
受保护的技术使用者:上海聚货通电子商务有限公司 嘉兴聚水潭智能科技有限公司
技术研发日:2023.06.01
技术公布日:2023/9/9
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:氮氧化物转化方法和车辆与流程 下一篇:一种方便更换的气枪打堵工装的制作方法