本申请涉及计算机技术领域,特别涉及一种数据的处理方法、装置、电子设备及计算机存储介质。
背景技术:
目前,编程的测试、评分通常采用在线编程测评系统(onlinejudge,简称oj)进行。在线编程测评系统通过对用户提交的代码进行编译、运行,使用标准的输入输出案例进行对比,确定获得的成绩。
由于用户在考试、测试过程中可能会重复提交大量相似、无效代码,从而占用了在线编程测评系统大量的资源,致使系统运行缓慢,因此,影响在线编程测评系统的正常运行。
技术实现要素:
有鉴于此,本申请提供一种数据的处理方法、装置、电子设备及计算机存储介质,用于快速对需要进行提交的代码进行处理。
本申请第一方面提供了一种数据的处理方法,包括:
获取至少一个待提交代码;
计算得到每一个所述待提交代码的哈希值;
判断每一个所述待提交代码的哈希值是否在哈希库中;其中,所述哈希库包括至少一个哈希值以及每一个所述哈希值对应的执行结果;
若判断出所述待提交代码的哈希值在所述哈希库中,反馈所述待提交代码的哈希值对应的执行结果;
若判断出所述待提交代码的哈希值不在所述哈希库中,在代码执行队列中执行所述待提交代码,生成执行所述待提交代码的执行结果。
可选的,所述在代码执行队列中执行所述待提交代码,生成执行所述待提交代码的执行结果之前,还包括:
判断每一个所述待提交代码是否为针对目标题目首次提交的代码;其中,所述目标题目为所述待提交代码所属的题目;
若判断出所述待提交代码是针对所述目标题目首次提交的代码,记录待提交代码的时间,并将所述待提交代码的质量参数设置为初始值;
若判断出所述待提交代码不是针对所述待目标题目首次提交的代码,根据所述待提交代码和上一次针对所述目标题目提交的代码,设置所述待提交代码的质量参数;
其中,所述在所述队列中执行所述待提交代码,生成执行所述待提交代码的执行结果,包括:
按照每一个所述待提交代码的质量参数的大小,依次执行每一个所述待提交代码,生成每一个所述待提交代码的执行结果。
可选的,所述根据所述待提交代码和上一次针对目标题目提交的代码,设置所述待提交代码的质量参数,包括:
对比所述待提交代码与所述上一次针对目标题目提交的代码,确定所述待提交代码与所述上一次针对目标题目提交的代码的变化程度;
根据所述变化程度,设置所述待提交代码的质量参数;其中,所述变化程度越高,所述待提交代码的质量参数越大;所述变化程度越小,所述待提交代码的质量参数越小。
可选的,所述根据所述待提交代码和上一次针对目标题目提交的代码,设置所述待提交代码的质量参数,包括:
查询所述待提交代码与所述上一次针对目标题目提交的代码的间隔时间;
根据所述间隔时间,设置所述待提交代码的质量参数;其中,所述间隔时间越久,所述待提交代码的质量参数越大;所述间隔时间越短,所述待提交代码的质量参数越小。
可选的,所述根据所述待提交代码和上一次针对目标题目提交的代码,设置所述待提交代码的质量参数,包括:
对比所述待提交代码与所述上一次针对目标题目提交的代码,确定所述待提交代码与所述上一次针对目标题目提交的代码的变化程度;
查询所述待提交代码与所述上一次针对目标题目提交的代码的间隔时间;
根据所述变化程度和所述间隔时间,设置所述待提交代码的质量参数;其中,所述变化程度越高,且所述间隔时间越久,所述待提交代码的质量参数越大;所述变化程度越小,且所述间隔时间越短,所述待提交代码的质量参数越小;所述变化程度高,但所述间隔时间短,所述待提交代码的质量参数根据所述变化程度进行设置;所述变化程度小,但所述间隔时间久,所述待提交代码的质量参数根据所述时间间隔进行设置。
可选的,所述待提交代码中包含时间参数,所述时间参数用于指示所述待提交代码的最晚提交时间,所述按照每一个所述待提交代码的质量参数的大小,依次执行每一个所述待提交代码,生成每一个所述待提交代码的执行结果,包括:
每隔预设时间,查询所述代码执行队列中的每一个所述待提交代码的时间参数;
优先在所述代码执行队列中执行即将达到最晚提交时间的待提交代码,生成即将达到最晚提交时间的待提交代码的执行结果。
可选的,所述在代码执行队列中执行所述待提交代码,生成执行所述待提交代码的执行结果之后,还包括:
保存所述待提交代码的哈希值与所述待提交代码的执行结果至所述哈希库中。
本申请第二方面提供了一种数据的处理装置,包括:
获取单元,用于获取至少一个待提交代码;
计算单元,用于计算得到每一个所述待提交代码的哈希值;
第一判断单元,用于判断每一个所述待提交代码的哈希值是否在哈希库中;其中,所述哈希库包括至少一个哈希值以及每一个所述哈希值对应的执行结果;
反馈单元,用于若所述第一判断单元判断出,所述待提交代码的哈希值在所述哈希库中,反馈所述待提交代码的哈希值对应的执行结果;
生成单元,用于若所述第一判断单元判断出,所述待提交代码的哈希值不在所述哈希库中,在代码执行队列中执行所述待提交代码,生成执行所述待提交代码的执行结果。
可选的,所述数据的处理装置,还包括:
第二判断单元,用于判断每一个所述待提交代码是否为针对目标题目首次提交的代码;其中,所述目标题目为所述待提交代码所属的题目;
记录单元,用于若所述第二判断单元判断出,所述待提交代码是针对所述目标题目首次提交的代码,记录待提交代码的时间,并将所述待提交代码的质量参数设置为初始值;
设置单元,用于若所述第二判断单元判断出,所述待提交代码不是针对所述待目标题目首次提交的代码,根据所述待提交代码和上一次针对所述目标题目提交的代码,设置所述待提交代码的质量参数;
其中,所述生成单元,用于:
按照每一个所述待提交代码的质量参数的大小,依次执行每一个所述待提交代码,生成每一个所述待提交代码的执行结果。
可选的,所述设置单元,包括:
第一确定单元,用于对比所述待提交代码与所述上一次针对目标题目提交的代码,确定所述待提交代码与所述上一次针对目标题目提交的代码的变化程度;
第一设置子单元,用于根据所述变化程度,设置所述待提交代码的质量参数;其中,所述变化程度越高,所述待提交代码的质量参数越大;所述变化程度越小,所述待提交代码的质量参数越小。
可选的,所述设置单元,包括:
第一查询单元,用于查询所述待提交代码与所述上一次针对目标题目提交的代码的间隔时间;
第二设置子单元,用于根据所述间隔时间,设置所述待提交代码的质量参数;其中,所述间隔时间越久,所述待提交代码的质量参数越大;所述间隔时间越短,所述待提交代码的质量参数越小。
可选的,所述设置单元,包括:
第二确定单元,用于对比所述待提交代码与所述上一次针对目标题目提交的代码,确定所述待提交代码与所述上一次针对目标题目提交的代码的变化程度;
第二查询单元,用于查询所述待提交代码与所述上一次针对目标题目提交的代码的间隔时间;
第三设置子单元,用于根据所述变化程度和所述间隔时间,设置所述待提交代码的质量参数;其中,所述变化程度越高,且所述间隔时间越久,所述待提交代码的质量参数越大;所述变化程度越小,且所述间隔时间越短,所述待提交代码的质量参数越小;所述变化程度高,但所述间隔时间短,所述待提交代码的质量参数根据所述变化程度进行设置;所述变化程度小,但所述间隔时间久,所述待提交代码的质量参数根据所述时间间隔进行设置。
可选的,所述待提交代码中包含时间参数,所述时间参数用于指示所述待提交代码的最晚提交时间,所述生成单元,包括:
第三查询单元,用于每隔预设时间,查询所述代码执行队列中的每一个所述待提交代码的时间参数;
生成子单元,用于优先在所述代码执行队列中执行即将达到最晚提交时间的待提交代码,生成即将达到最晚提交时间的待提交代码的执行结果。
可选的,所述数据的处理装置,还包括:
保存单元,用于保存所述待提交代码的哈希值与所述待提交代码的执行结果至所述哈希库中。
本申请第三方面提供了一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如第一方面任意一项所述的方法。
本申请第四方面提供了一种计算机存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如第一方面任意一项所述的方法。
由以上方案可知,本申请提供的一种数据的处理方法、装置、电子设备以及计算机存储介质中,所述处理方法通过获取至少一个待提交代码;然后计算得到每一个所述待提交代码的哈希值;判断每一个所述待提交代码的哈希值是否在哈希库中;其中,所述哈希库包括至少一个哈希值以及每一个所述哈希值对应的执行结果;若判断出所述待提交代码的哈希值在所述哈希库中,则反馈所述待提交代码的哈希值对应的执行结果;若判断出所述待提交代码的哈希值不在所述哈希库中,则在代码执行队列中执行所述待提交代码,生成执行所述待提交代码的执行结果。达到了快速对需要进行提交的代码进行处理的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据的处理方法的具体流程图;
图2为本申请另一实施例提供的一种数据的处理方法的具体流程图;
图3为本申请另一实施例提供的一种数据的处理方法的具体流程图;
图4为本申请另一实施例提供的一种数据的处理方法的具体流程图;
图5为本申请另一实施例提供的一种数据的处理方法的具体流程图;
图6为本申请另一实施例提供的一种数据的处理方法的具体流程图;
图7为本申请另一实施例提供的一种数据的处理装置的示意图;
图8为本申请另一实施例提供的一种数据的处理装置的示意图;
图9为本申请另一实施例提供的一种实现数据的处理方法的电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系,而术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本申请实施例提供了一种数据的处理方法,如图1所示,具体包括以下步骤:
s101、获取至少一个待提交代码。
需要说明的是,获取得到的至少一个待提交代码可以是由同一个用户上传的多个待提交代码,也可以是由不同用户上传的多个待提交代码,此处不做限定。
还需要说明的是,系统可以根据用户标识,对每一个待提交代码所属用户进行识别;以及题目标识、用途标识等对每一个待提交代码所述类型进行识别,此处不做限定。
s102、计算得到每一个待提交代码的哈希值。
需要说明的是,可以是但不限于通过预先设置的哈希算法对每一个待提交代码进行计算,得到每一个待提交代码的哈希值。
s103、判断每一个待提交代码的哈希值是否在哈希库中。
其中,哈希库包括至少一个哈希值以及每一个哈希值对应的执行结果。
需要说明的是,判断每一个待提交代码的哈希值是否在哈希库中的方式,可以是但不限于,在哈希库中查询是否存在待提交代码的哈希值。
具体的,针对每一个待提交代码的哈希值,判断待提交代码的哈希值是否在哈希库中,若判断出待提交代码的哈希值在哈希库中,则执行步骤s104;若判断出待提交代码的哈希值不在哈希库中,则执行步骤s105。
s104、反馈待提交代码的哈希值对应的执行结果。
需要说明的是,由于待提交代码的哈希值在哈希库,根据哈希算法的一致性,则说明之前有用户已经提交过该代码,所以无需在代码执行队列中再次执行该代码,直接反馈之前提交该代码时的执行结果即可。
可以理解的是,之前提交该代码的用户不一定为本次提交待提交代码的用户。
具体的,在哈希库中查找、并反馈待提交代码的哈希值对应的执行结果。
s105、在代码执行队列中执行待提交代码,生成执行待提交代码的执行结果。
需要说明的是,由于待提交代码的哈希值在哈希库,根据哈希算法的一致性,则说明之前有用户并没有提交过该代码,因此需要在代码执行队列中首次执行待提交代码,并生成执行待提交代码的执行结果。
可选的,在本申请的另一实施例中,在步骤s105之后的一种实施方式,包括:
保存待提交代码的哈希值与待提交代码的执行结果至哈希库中。
可以理解的是,将待提交代码的哈希值与待提交代码的执行结果保存至哈希库后,后续获取得到新的待提交代码时,可以计算新的待提交代码的哈希值与本次存储的待提交代码的哈希值是否一致,若一致,则将待提交代码的执行结果作为获取的得到新的待提交代码的执行结果进行反馈。
由以上方案可知,本申请提供的一种数据的处理方法中,通过获取至少一个待提交代码;然后计算得到每一个待提交代码的哈希值;判断每一个待提交代码的哈希值是否在哈希库中;其中,哈希库包括至少一个哈希值以及每一个哈希值对应的执行结果;若判断出待提交代码的哈希值在哈希库中,则反馈待提交代码的哈希值对应的执行结果;若判断出待提交代码的哈希值不在哈希库中,则在代码执行队列中执行待提交代码,生成执行待提交代码的执行结果。达到了快速对需要进行提交的代码进行处理的目的。
可选的,在申请的另一实施例中,数据的处理方法的一种实施方式,如图2所示,包括:
s201、获取至少一个待提交代码。
需要说明的是,步骤s201的具体实现过程与上述步骤s101的具体实现过程相同,可相互参见。
s202、计算得到每一个待提交代码的哈希值。
需要说明的是,步骤s202的具体实现过程与上述步骤s102的具体实现过程相同,可相互参见。
s203、判断每一个待提交代码的哈希值是否在哈希库中。
需要说明的是,步骤s203的具体实现过程与上述步骤s103的具体实现过程相同,可相互参见。
其中,哈希库包括至少一个哈希值以及每一个哈希值对应的执行结果。
具体的,若判断出待提交代码的哈希值在哈希库中,则执行步骤s204;若判断出待提交代码的哈希值不在哈希库中,则执行步骤s205。
s204、反馈待提交代码的哈希值对应的执行结果。
需要说明的是,步骤s204的具体实现过程与上述步骤s104的具体实现过程相同,可相互参见。
s205、判断每一个待提交代码是否为针对目标题目首次提交的代码。
其中,目标题目为待提交代码所属的题目。
具体的,若判断出待提交代码是针对目标题目首次提交的代码,则执行步骤s206;若判断出待提交代码不是针对待目标题目首次提交的代码,则执行步骤s207。
s206、记录待提交代码的时间,并将待提交代码的质量参数设置为初始值。
其中,初始值可以是技术人员经过多次试验进行计算得到的初始值,也可以是工作人员根据实际的应用情况进行调整,此处不做限定。
s207、根据待提交代码和上一次针对目标题目提交的代码,设置待提交代码的质量参数。
可选的,在本申请的另一实施例中,步骤s207的一种实施方式,如图3所示,包括:
s301、对比待提交代码与上一次针对目标题目提交的代码,确定待提交代码与上一次针对目标题目提交的代码的变化程度。
其中,变化程度可以是但不限于对比待提交代码与上一次针对目标题目提交的代码的差异程度、相似性等,此处不做限定。
需要说明的是,变化程度可以利用但不限于简单的等级进行区分,如变化程度1级、变化程度2级、变化程度3级,其中变化程度3级的变化程度大于变化程度2级。
例如:将待提交代码按照段落分为多段,如10段,分别判断每一段与上一次针对目标题目提交的代码对应的段落,假设有8段是一致的,那么就说明待提交代码与上一次针对目标题目提交的代码有80%的相似,那么,可以理解是,越相似,则变化程度越低,可以将其确定为变化程度1级。
s302、根据变化程度,设置待提交代码的质量参数。
其中,变化程度越高,待提交代码的质量参数越大;变化程度越小,待提交代码的质量参数越小。
例如:当变化程度1级时,设置待提交代码的质量参数为30(100满);当变化程度2级时,设置待提交代码的质量参数为50(100满);当变化程度3级时,设置待提交代码的质量参数为80(100满)。
可选的,在本申请的另一实施例中,步骤s207的一种实施方式,如图4所示,包括:
s401、查询待提交代码与上一次针对目标题目提交的代码的间隔时间。
s402、根据间隔时间,设置待提交代码的质量参数。
其中,间隔时间越久,待提交代码的质量参数越大;间隔时间越短,待提交代码的质量参数越小。
例如:间隔时间为1个小时,则设置待提交代码的质量参数为100(100满);间隔时间为半个小时,则设置待提交代码的质量参数为50;间隔时间为15分钟,则设置待提交代码的质量参数为25等。
可选的,在本申请的另一实施例中,步骤s207的一种实施方式,如图5所示,包括:
s501、对比待提交代码与上一次针对目标题目提交的代码,确定待提交代码与上一次针对目标题目提交的代码的变化程度。
需要说明的是,步骤s501的具体实现过程与上述步骤s301的具体实现过程相同,可相互参见。
s502、查询待提交代码与上一次针对目标题目提交的代码的间隔时间。
需要说明的是,步骤s502的具体实现过程与上述步骤s401的具体实现过程相同,可相互参见。
s503、根据变化程度和间隔时间,设置待提交代码的质量参数。
其中,变化程度越高,且间隔时间越久,待提交代码的质量参数越大;变化程度越小,且间隔时间越短,待提交代码的质量参数越小;变化程度高,但间隔时间短,待提交代码的质量参数根据变化程度进行设置;变化程度小,但间隔时间久,待提交代码的质量参数根据时间间隔进行设置。
s208、按照每一个待提交代码的质量参数的大小,依次执行每一个待提交代码,生成每一个待提交代码的执行结果。
可选的,在本申请的另一实施例中,待提交代码中包含时间参数,时间参数用于指示待提交代码的最晚提交时间,步骤s208的一种实施方式,如图6所示,包括:
s601、每隔预设时间,查询代码执行队列中的每一个待提交代码的时间参数。
其中,预设时间可以是技术人员经过多次试验进行计算得到的,也可以是工作人员根据实际的应用情况进行调整,此处不做限定。
s602、优先在代码执行队列中执行即将达到最晚提交时间的待提交代码,生成即将达到最晚提交时间的待提交代码的执行结果。
可以理解的是,就算即将达到最晚提交时间的待提交代码的质量参数为10,目前在代码执行队列中前列的待提交代码的质量参数为100,依旧会优先在代码执行队列中执行即将达到最晚提交时间的待提交代码。
由以上方案可知,本申请提供的一种数据的处理方法中,通过获取至少一个待提交代码;然后计算得到每一个待提交代码的哈希值;判断每一个待提交代码的哈希值是否在哈希库中;其中,哈希库包括至少一个哈希值以及每一个哈希值对应的执行结果;若判断出待提交代码的哈希值在哈希库中,则反馈待提交代码的哈希值对应的执行结果;若判断出待提交代码的哈希值不在哈希库中,则判断每一个待提交代码是否为针对目标题目首次提交的代码,若判断出待提交代码是针对目标题目首次提交的代码,则记录待提交代码的时间,并将待提交代码的质量参数设置为初始值;若判断出待提交代码不是针对待目标题目首次提交的代码,则根据待提交代码和上一次针对目标题目提交的代码,设置待提交代码的质量参数;最后,按照每一个待提交代码的质量参数的大小,依次执行每一个待提交代码,生成每一个待提交代码的执行结果。达到了快速对需要进行提交的代码进行处理的目的。
本申请另一实施例提供了一种数据的处理装置,如图7所示,包括:
获取单元701,用于获取至少一个待提交代码。
计算单元702,用于计算得到每一个待提交代码的哈希值。
第一判断单元703,用于判断每一个待提交代码的哈希值是否在哈希库中。
其中,哈希库包括至少一个哈希值以及每一个哈希值对应的执行结果。
反馈单元704,用于若第一判断单元703判断出,待提交代码的哈希值在哈希库中,反馈待提交代码的哈希值对应的执行结果。
生成单元705,用于若第一判断单元703判断出,待提交代码的哈希值不在哈希库中,在代码执行队列中执行待提交代码,生成执行待提交代码的执行结果。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图1所示,此处不再赘述。
可选的,在本申请的另一实施例中,数据的处理装置,还可以包括:
保存单元,用于保存待提交代码的哈希值与待提交代码的执行结果至哈希库中。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,此处不再赘述。
由以上方案可知,本申请提供的一种数据的处理装置中,获取单元701获取至少一个待提交代码;然后计算单元702计算得到每一个待提交代码的哈希值;第一判断单元703判断每一个待提交代码的哈希值是否在哈希库中;其中,哈希库包括至少一个哈希值以及每一个哈希值对应的执行结果;若第一判断单元703判断出待提交代码的哈希值在哈希库中,反馈单元704反馈待提交代码的哈希值对应的执行结果;若第一判断单元703判断出待提交代码的哈希值不在哈希库中,生成单元705在代码执行队列中执行待提交代码,生成执行待提交代码的执行结果。达到了快速对需要进行提交的代码进行处理的目的。
可选的,在本申请的另一实施例中,数据的处理装置的一种实施方式,如图8所示,包括:
获取单元801,用于获取至少一个待提交代码。
计算单元802,用于计算得到每一个待提交代码的哈希值。
第一判断单元803,用于判断每一个待提交代码的哈希值是否在哈希库中。
其中,哈希库包括至少一个哈希值以及每一个哈希值对应的执行结果。
反馈单元804,用于若第一判断单元803判断出,待提交代码的哈希值在哈希库中,反馈待提交代码的哈希值对应的执行结果。
第二判断单元805,用于若第一判断单元803判断出,待提交代码的哈希值不在哈希库中,则判断每一个待提交代码是否为针对目标题目首次提交的代码。
其中,目标题目为待提交代码所属的题目。
记录单元806,用于若第二判断单元805判断出,待提交代码是针对目标题目首次提交的代码,记录待提交代码的时间,并将待提交代码的质量参数设置为初始值。
设置单元807,用于若第二判断单元805判断出,待提交代码不是针对待目标题目首次提交的代码,根据待提交代码和上一次针对目标题目提交的代码,设置待提交代码的质量参数。
可选的,在本申请的另一实施例中,设置单元807的一种实施方式,包括:
第一确定单元,用于对比待提交代码与上一次针对目标题目提交的代码,确定待提交代码与上一次针对目标题目提交的代码的变化程度。
第一设置子单元,用于根据变化程度,设置待提交代码的质量参数。
其中,变化程度越高,待提交代码的质量参数越大;变化程度越小,待提交代码的质量参数越小。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图3所示,此处不再赘述。
可选的,在本申请的另一实施例中,设置单元807的一种实施方式,包括:
第一查询单元,用于查询待提交代码与上一次针对目标题目提交的代码的间隔时间。
第二设置子单元,用于根据间隔时间,设置待提交代码的质量参数。
其中,间隔时间越久,待提交代码的质量参数越大;间隔时间越短,待提交代码的质量参数越小。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图4所示,此处不再赘述。
可选的,在本申请的另一实施例中,设置单元807的一种实施方式,包括:
第二确定单元,用于对比待提交代码与上一次针对目标题目提交的代码,确定待提交代码与上一次针对目标题目提交的代码的变化程度。
第二查询单元,用于查询待提交代码与上一次针对目标题目提交的代码的间隔时间。
第三设置子单元,用于根据变化程度和间隔时间,设置待提交代码的质量参数。
其中,变化程度越高,且间隔时间越久,待提交代码的质量参数越大;变化程度越小,且间隔时间越短,待提交代码的质量参数越小;变化程度高,但间隔时间短,待提交代码的质量参数根据变化程度进行设置;变化程度小,但间隔时间久,待提交代码的质量参数根据时间间隔进行设置。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图5所示,此处不再赘述。
生成单元808,用于按照每一个待提交代码的质量参数的大小,依次执行每一个待提交代码,生成每一个待提交代码的执行结果。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图2所示,此处不再赘述。
可选的,在本申请的另一实施例中,待提交代码中包含时间参数,时间参数用于指示待提交代码的最晚提交时间,那么,生成单元808的一种实施方式,包括:
第三查询单元,用于每隔预设时间,查询代码执行队列中的每一个待提交代码的时间参数。
生成子单元,用于优先在代码执行队列中执行即将达到最晚提交时间的待提交代码,生成即将达到最晚提交时间的待提交代码的执行结果。
本申请上述实施例公开的单元的具体工作过程,可参见对应的方法实施例内容,如图6所示,此处不再赘述。
由以上方案可知,本申请提供的一种数据的处理装置中,获取单元801获取至少一个待提交代码;然后计算单元802计算得到每一个待提交代码的哈希值;第一判断单元803判断每一个待提交代码的哈希值是否在哈希库中;其中,哈希库包括至少一个哈希值以及每一个哈希值对应的执行结果;若第一判断单元803判断出待提交代码的哈希值在哈希库中,则反馈单元804反馈待提交代码的哈希值对应的执行结果;若第一判断单元803判断出待提交代码的哈希值不在哈希库中,则第二判断单元805判断每一个待提交代码是否为针对目标题目首次提交的代码,若第二判断单元805判断出待提交代码是针对目标题目首次提交的代码,则记录单元806记录待提交代码的时间,并将待提交代码的质量参数设置为初始值;若第二判断单元805判断出待提交代码不是针对待目标题目首次提交的代码,则设置单元807根据待提交代码和上一次针对目标题目提交的代码,设置待提交代码的质量参数;最后,生成单元808按照每一个待提交代码的质量参数的大小,依次执行每一个待提交代码,生成每一个待提交代码的执行结果。达到了快速对需要进行提交的代码进行处理的目的。
本申请另一实施例提供了一种电子设备,如图9所示,包括:
一个或多个处理器901。
存储装置902,其上存储有一个或多个程序。
当所述一个或多个程序被所述一个或多个处理器901执行时,使得所述一个或多个处理器901实现如上述实施例中任意一项所述的方法。
本申请另一实施例提供了一种计算机存储介质,其上存储有计算机程序,其中,计算机程序被处理器执行时实现如上述实施例中任意一项所述的方法。
在本申请公开的上述实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,直播设备,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
1.一种数据的处理方法,其特征在于,包括:
获取至少一个待提交代码;
计算得到每一个所述待提交代码的哈希值;
判断每一个所述待提交代码的哈希值是否在哈希库中;其中,所述哈希库包括至少一个哈希值以及每一个所述哈希值对应的执行结果;
若判断出所述待提交代码的哈希值在所述哈希库中,反馈所述待提交代码的哈希值对应的执行结果;
若判断出所述待提交代码的哈希值不在所述哈希库中,在代码执行队列中执行所述待提交代码,生成执行所述待提交代码的执行结果。
2.根据权利要求1所述的处理方法,其特征在于,所述在代码执行队列中执行所述待提交代码,生成执行所述待提交代码的执行结果之前,还包括:
判断每一个所述待提交代码是否为针对目标题目首次提交的代码;其中,所述目标题目为所述待提交代码所属的题目;
若判断出所述待提交代码是针对所述目标题目首次提交的代码,记录待提交代码的时间,并将所述待提交代码的质量参数设置为初始值;
若判断出所述待提交代码不是针对所述待目标题目首次提交的代码,根据所述待提交代码和上一次针对所述目标题目提交的代码,设置所述待提交代码的质量参数;
其中,所述在所述队列中执行所述待提交代码,生成执行所述待提交代码的执行结果,包括:
按照每一个所述待提交代码的质量参数的大小,依次执行每一个所述待提交代码,生成每一个所述待提交代码的执行结果。
3.根据权利要求2所述的处理方法,其特征在于,所述根据所述待提交代码和上一次针对目标题目提交的代码,设置所述待提交代码的质量参数,包括:
对比所述待提交代码与所述上一次针对目标题目提交的代码,确定所述待提交代码与所述上一次针对目标题目提交的代码的变化程度;
根据所述变化程度,设置所述待提交代码的质量参数;其中,所述变化程度越高,所述待提交代码的质量参数越大;所述变化程度越小,所述待提交代码的质量参数越小。
4.根据权利要求2所述的处理方法,其特征在于,所述根据所述待提交代码和上一次针对目标题目提交的代码,设置所述待提交代码的质量参数,包括:
查询所述待提交代码与所述上一次针对目标题目提交的代码的间隔时间;
根据所述间隔时间,设置所述待提交代码的质量参数;其中,所述间隔时间越久,所述待提交代码的质量参数越大;所述间隔时间越短,所述待提交代码的质量参数越小。
5.根据权利要求2所述的处理方法,其特征在于,所述根据所述待提交代码和上一次针对目标题目提交的代码,设置所述待提交代码的质量参数,包括:
对比所述待提交代码与所述上一次针对目标题目提交的代码,确定所述待提交代码与所述上一次针对目标题目提交的代码的变化程度;
查询所述待提交代码与所述上一次针对目标题目提交的代码的间隔时间;
根据所述变化程度和所述间隔时间,设置所述待提交代码的质量参数;其中,所述变化程度越高,且所述间隔时间越久,所述待提交代码的质量参数越大;所述变化程度越小,且所述间隔时间越短,所述待提交代码的质量参数越小;所述变化程度高,但所述间隔时间短,所述待提交代码的质量参数根据所述变化程度进行设置;所述变化程度小,但所述间隔时间久,所述待提交代码的质量参数根据所述时间间隔进行设置。
6.根据权利要求2所述的处理方法,其特征在于,所述待提交代码中包含时间参数,所述时间参数用于指示所述待提交代码的最晚提交时间,所述按照每一个所述待提交代码的质量参数的大小,依次执行每一个所述待提交代码,生成每一个所述待提交代码的执行结果,包括:
每隔预设时间,查询所述代码执行队列中的每一个所述待提交代码的时间参数;
优先在所述代码执行队列中执行即将达到最晚提交时间的待提交代码,生成即将达到最晚提交时间的待提交代码的执行结果。
7.根据权利要求1所述的处理方法,其特征在于,所述在代码执行队列中执行所述待提交代码,生成执行所述待提交代码的执行结果之后,还包括:
保存所述待提交代码的哈希值与所述待提交代码的执行结果至所述哈希库中。
8.一种数据的处理装置,其特征在于,包括:
获取单元,用于获取至少一个待提交代码;
计算单元,用于计算得到每一个所述待提交代码的哈希值;
第一判断单元,用于判断每一个所述待提交代码的哈希值是否在哈希库中;其中,所述哈希库包括至少一个哈希值以及每一个所述哈希值对应的执行结果;
反馈单元,用于若所述第一判断单元判断出,所述待提交代码的哈希值在所述哈希库中,反馈所述待提交代码的哈希值对应的执行结果;
生成单元,用于若所述第一判断单元判断出,所述待提交代码的哈希值不在所述哈希库中,在代码执行队列中执行所述待提交代码,生成执行所述待提交代码的执行结果。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至7中任一所述的方法。
10.一种计算机存储介质,其特征在于,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7中任一所述的方法。
技术总结