本发明涉及计算机
技术领域:
,尤其涉及一种基于递归的资源清理方法及装置。
背景技术:
:随着计算机技术的不断发展,软件测试也越来越重要,在如今,基本上每个进行产品研发的单位都会有专门的软件测试人员,对研发出的产品的性能、正确性、完整性、安全性、代码或框架的严谨性等进行测试,包括白盒测试和黑盒测试等,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估,从而不断优化产品,保障投放到市场上的产品质量。而在软件测试行业内,为了验证产品的功能,测试人员会在测试环境、生产环境下不断创建产品进行测试,从而会消耗很多资源。验证完成后,测试人员通常会手动删除这些测试时候创建的资源,或者暂时不予处理,待资源不足时再按需清理一部分。然而,对于“手动清理”的方式,会在一定程度上消耗测试人员或管理人员的时间和人力;对于“暂不处理,待资源不足时再按需清理一部分”的方式,可能会影响测试进度,尤其在需要紧急获取资源时,会带来不便,影响工作进程。技术实现要素:基于此,为解决上述提到的资源清理浪费人力和时间,还可能造成在急需使用时资源不足影响工作进程的问题,特提供了一种基于递归的资源清理方法和装置。本发明实施例一方面提供了一种基于递归的资源清理方法,包括:判断基础数据资源是否被设置为保留,若所述基础数据资源未被设置为保留,则确定所述基础数据资源为第一资源;根据所述第一资源的资源标识在所述第一资源的所处系统中查找所述第一资源的依赖资源,所述第一资源的依赖资源为在生成时引用所述第一资源的数据资源;若在所述第一资源的所处系统中查找到所述第一资源的至少一个依赖资源,则分别将所述第一资源的至少一个依赖资源作为第一资源执行所述根据所述第一资源的资源标识在所述第一资源的所处系统中查找所述第一资源的依赖资源的步骤;若在所述第一资源的所处系统中未查找到所述第一资源的依赖资源,则删除所述第一资源,并将所述第一资源的被依赖资源作为第一资源执行所述根据所述第一资源的资源标识在所述第一资源的所处系统中查找所述第一资源的依赖资源的步骤。其中,所述第一资源的资源标识包括所述第一资源的引用标识,所述根据所述第一资源的资源标识在所述第一资源的所处系统中查找所述第一资源的依赖资源包括:根据所述第一资源的引用标识在所述第一资源的所处系统中查找资源名称包括所述第一资源的引用标识的其他数据资源,作为所述第一资源的依赖资源;或者,根据所述第一资源的引用标识在所述第一资源的所处系统中查找资源内容包括所述第一资源的引用标识的其他数据资源,作为所述第一资源的依赖资源。其中,所述判断基础数据资源是否被设置为保留包括:判断所述基础数据资源是否携带预设的保留标签,若是则确定所述基础数据资源被设置为保留,否则确定所述基础数据资源未被设置为保留;或读取所述基础数据资源的布尔标记,若所述基础数据资源的布尔标记为true值则确定所述基础数据资源被设置为保留,否则确定所述基础数据资源未被设置为保留。其中,所述判断基础数据资源是否被设置为保留之前还包括:若确定到达预设的资源清理时间或接收到资源清理指令,则触发所述判断基础数据资源是否被设置为保留的步骤。其中,所述删除所述第一资源包括:提取所述第一资源的资源信息,所述第一资源的资源信息包括所述第一资源的id,所述第一资源的id用于指示所述第一资源的存放地址;根据所述第一资源的资源类型调用对应的资源删除方法,并将所述第一资源的id作为所述资源删除方法的调用参数,对所述第一资源进行删除。其中,所述第一资源的信息还包括所述第一资源的创建用户账号;所述根据所述第一资源的资源类型调用对应的资源删除方法,并将所述第一资源的id作为所述资源删除方法的调用参数,对所述第一资源进行删除之后还包括:根据所述第一资源的创建用户账号将所述第一资源的删除结果反馈给所述第一资源的创建用户,所述删除结果包括删除失败信息或删除成功信息。其中,所述基础数据资源为虚拟私有云。其中,所述方法还包括:在确定到达预设的资源清理时间或接收到资源清理指令后,提取所述基础数据资源的资源信息,将提取的所述基础数据资源的资源信息存入集合中,按序遍历,当所述基础数据资源的资源信息全部遍历结束,则结束资源清理。其中,在进行所述资源清理时,查找到所述第一资源的依赖资源之后,调用所述第一资源的依赖资源的资源信息,若所述第一资源的依赖资源有依赖资源,则自动将所述第一资源的依赖资源的资源信息存入缓存,将所述第一资源的依赖资源的依赖资源作为第一资源继续进行资源清理,否则删除所述第一资源的依赖资源,返回所述第一资源继续进行所述资源清理。本发明实施例另一方面提供了一种图像处理装置,包括:遍历处理模块,用于遍历资源,查找未被标记保留的基础数据资源,并将所述基础数据资源的资源信息存储到存储模块;存储模块,用于存储所述基础数据资源的信息及资源清理结果;删除模块,用于若在第一资源的所处系统中未查找到所述第一资源的依赖资源,则删除所述第一资源,若在所述第一资源的所处系统中查找到所述第一资源的至少一个依赖资源,则分别将所述第一资源的至少一个依赖资源作为第一资源执行所述根据所述第一资源标识在所述第一资源的所处系统中查找所述第一资源的依赖资源的步骤;判断模块,用于判断所述基础数据资源是否被设置保留,判断当前资源是否有依赖资源,及判断资源是否全部清理。设置模块,用于获取用户设置的删除资源的指定时间及所述基础数据资源是否保留;反馈模块,用于在资源清理结束后向用户反馈所述资源清理结果,所述资源清理结果包括资源删除结果。其中,所述判断模块包括:判断所述基础数据资源是否携带预设的保留标签,若是则确定所述基础数据资源被设置为保留,否则确定所述基础数据资源未被设置为保留,或者,读取所述基础数据资源的布尔标记,若所述基础数据资源的布尔标记为true值则确定所述基础数据资源被设置为保留,否则确定所述基础数据资源未被设置为保留;根据所述第一资源的资源标识在所述第一资源的所处系统中查找所述第一资源的依赖资源,若在所述第一资源的所处系统中查找到包含所述第一资源的资源标识的其他数据资源,则所述第一资源有依赖资源,查找到的所述其他数据资源为所述第一资源的依赖资源;通过遍历所述基础数据资源的信息过程中判断下一个基础数据资源信息是否为空得到所述资源清理结果,若为空则资源全部清理,否则继续进行资源清理。本发明实施例另一方面提供了一种基于递归的资源清理装置,包括:处理器、存储器;所述处理器与所述存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,执行如本发明实施例中一方面所述基于递归的资源清理方法。本发明实施例另一方面提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序指令,所述计算机程序指令当被处理器执行时用于处理如本发明实施例中一方面所述基于递归的资源清理方法。实施本发明实施例,将具有如下有益效果:本发明实施例通过使用递归删除的方式对资源进行清理,以一个基础数据资源为例,若所述基础数据资源未被设置为保留,则将所述基础数据资源确定为第一资源,根据所述第一资源的资源标识查找所述第一资源的依赖资源,若存在所述第一资源的依赖资源,则将所述第一资源的依赖资源确定为第一资源,执行所述根据第一资源的资源标识查找所述第一资源的依赖资源的步骤,否则删除所述第一资源,通过这种递归方式,最大限度地清理所有资源,同时保留需保留的资源,使资源可以按需清理,避免了资源清理不完全的情况出现,避免删除重要资源,而且定时自动清理节省了时间和人力。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:图1为本发明实施例提供的一种基于递归的资源清理方法流程图;图2为本发明实施例的一个数据资源的处理结构图;图3为一个基于递归的资源清理实例图;图4为平安公有云的一个vpc资源依赖图;图5为本发明实施例提供的一种基于递归的资源清理装置的结构示意图;图6为本发明实施例提供的服务器的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参见图1,图1是本发明实施例提供的一种基于递归的资源清理方法的流程图。如图1所示,上述方法包括以下步骤:步骤s101,判断基础数据资源是否被设置为保留;具体的,在确定到达预设的资源清理时间或接收到资源清理指令后,遍历本系统中所有资源,查找基础数据资源。上述基础数据资源是进行删除操作的起点,例如为虚拟私有云(vpc,virtualprivatecloud),为被其他数据资源依赖,但不依赖其他数据资源的数据资源。具体的,所述基础数据资源不包含其他数据资源的资源标识,在生成时不引用其他数据资源,即上述基础数据资源不依赖其他数据资源。查找到基础数据资源后判断上述基础数据资源是否被设置为保留,若上述基础数据资源未被设置为保留,则提取查找到的基础数据资源的资源信息,包括上述基础数据资源的id,上述基础数据资源的创建用户的账号等,将提取的上述基础数据资源的资源信息依次存入列表。具体的,通过判断上述基础数据资源是否携带预设的保留标签或读取上述基础数据资源的布尔标记来判断上述基础数据资源是否被设置为保留,若上述基础数据资源携带预设的保留标签或上述基础数据资源的布尔标记为true,则上述基础数据资源被设置为保留,执行步骤s108,否则未被设置为保留,提取上述基础数据资源的信息,执行步骤s102。步骤s102,将所述基础数据资源确定为第一资源;具体的,上述存储的基础数据资源的资源信息以栈、队列或数组等的方式存储在系统中,上述基础数据资源的资源信息包括上述基础数据资源的id,上述基础数据资源的创建用户的账号,其中,上述基础数据资源的id用于指示上述基础数据资源的地址,作为调用删除上述基础数据资源方法的参数,对上述基础数据资源进行删除。具体的,上述存储的基础数据资源的资源信息一种方式如下表所示:id资源名称创建用户xxxxx1基础资源axxx…xxxxx2基础资源bxxx…xxxxx3基础资源cxxx…依次遍历,以基础数据资源的id作为参数调用上述基础数据资源的删除方法,通过上述基础数据资源的id获取上述基础数据资源的地址,访问上述基础数据资源,对上述基础数据资源进行删除操作。这里以一个基础数据资源为例,将该基础数据资源确定为第一资源。其中,第一资源为当前正在处理的数据资源,无具体的含义。步骤s103,判断所述第一资源是否有依赖资源;具体的,根据上述第一资源的资源标识在上述第一资源的所处系统中查找上述第一资源的依赖资源,若在上述第一资源的所处系统中查找到包含上述第一资源的资源标识的其他数据资源,则上述第一资源有依赖资源,查找到的上述其他数据资源为上述第一资源的依赖资源,执行步骤104,否则上述第一资源不存在依赖资源,执行步骤s105。步骤s104,将所述第一资源的依赖资源作为第一资源;具体的,当查找到第一资源的依赖资源,则将上述第一资源放入缓存,同时将上述第一资源的依赖资源作为第一资源返回执行步骤s103。步骤s105,删除所述第一资源;具体的,通过上述第一资源的信息中包含的id调用删除上述第一资源的方法,对上述第一资源进行删除。可选的,在进行删除操作时,调用删除方法,由于数据资源的类型不同,因此上述删除方法为重载方法,对上述第一资源进行删除,得到删除结果,若删除成功,则继续执行后续删除操作,否则将删除失败的信息上传到空文件中,上述删除失败的信息包括删除失败对应的数据资源id,删除失败对应的数据资源的创建用户账号及删除失败的原因,再继续执行后续删除操作。其中,可以通过数据资源的创建用户账号进行分类存储,在结束资源清理后,根据上述数据资源的创建用户账号将删除结果发送给对应的数据资源的创建用户;还可以直接将删除结果直接存入文件中,在结束资源清理后,逐行读取上述文件的内容,获取删除信息对应的创建用户账号,将该行信息反馈给该行创建用户账号对应的创建用户,由人工分析原因。步骤s106,判断所述第一资源是否存在被依赖资源;具体的,通过缓存后序读取,在第一资源删除后,判断缓存中上述第一资源是否存在前驱数据资源,若存在,则上述第一资源存在被依赖资源,上述前驱数据资源即为上述第一资源的被依赖资源,执行步骤s107,否则执行步骤s108。具体的,上述缓存可以通过栈进行存储,利用栈先进后出的特性,通过处理栈顶所指示数据资源是否为空判断上述第一资源是否存在被依赖资源,若为空,则不存在被依赖资源,执行步骤s108,否则执行步骤s107。步骤s107,将所述第一资源的被依赖资源作为第一资源;当缓存中上述第一资源存在前驱数据资源,则上述前驱数据资源为上述第一资源的被依赖资源,将上述第一资源的被依赖资源作为第一资源执行步骤s103。步骤s108,处理下一基础数据资源;具体的,根据步骤s101查找的基础数据资源,从提取的基础数据资源信息列表中读取上一删除的基础数据资源的后继数据,所述后继数据为上一删除的基础数据资源的下一基础数据资源,将下一基础数据资源作为第一资源执行上述步骤s101-s107,直至所述基础数据资源信息列表全部遍历,结束此次资源清理。具体的,参见图2,图2为本发明实施例的一个数据资源的处理结构图。这里假定系统中存在系统数据资源301,包括数据资源a、b、c、d、e、a1、a2、a3、a11、a12、a21、b1,其中,数据资源e为含有“保留”标签的基础数据资源,其他数据资源为未被设置为保留的资源。通过遍历系统中数据资源,根据图1所示的资源清理步骤,进行以下操作:①判断基础数据资源是否被设置为保留,其中,基础数据资源a、b、c、d为未被设置为保留的资源,可以使用队列形式存储,包括基础数据资源a—>c—>b—>d。通过遍历系统中的所有资源,查找未被设置为保留的基础数据资源,提取上述基础数据资源的信息,进行入队操作,其中,基础数据资源的信息至少包括上述基础数据资源的id及创建用户账号,最终得到如下关系:a—>next=c,c—>next=b,b—>next=d。②依次读取上述基础资源,将基础数据资源a确定为第一资源;③判断上述基础数据资源a是否有依赖资源;④上述基础数据资源a存在依赖资源,将基础数据资源a加入缓存,将基础数据资源a的依赖资源a1作为第一资源;⑤判断数据资源a1是否有依赖资源;⑥上述数据资源a1存在依赖资源,将上述数据资源a1加入缓存,此时缓存中包括a—>a1,将查找到的数据资源a1的依赖资源a12作为第一资源;⑦判断数据资源a12是否存在依赖资源;⑧数据资源a12没有依赖资源,删除数据资源a12;⑨读取缓存,数据资源a12存在前驱数据a1,将数据资源a1取出缓存作为第一资源,返回执行⑤。同理,依次删除数据资源a11—>a1—>a21—>a2—>a3—>a,完成基础数据资源a及其依赖资源的清理,使用同种方法删除基础数据资源c、b、d及其依赖资源。基础数据资源和依赖资源的关系结构图可看做树形结构,以后序遍历顺序进行删除操作,删除的基本步骤如下所示:可选的,具体的删除过程以图3为例,图3为基于递归的资源清理实例图。具体的,可根据存储地址依次读取系统中的数据资源,使用正则表达式进行标签匹配,判断基础数据资源是否被设置为保留。其中,数据资源a不包含其他数据资源的资源标识,确定为基础数据资源,提取数据资源a的信息加入列表基础数据资源302,这里假定使用队列进行存储,此时数据资源a的信息位于队首front,依次遍历,数据资源a1包含数据资源a的资源标识,确定为依赖资源,提取数据资源a1的信息放入未处理依赖资源303列表中,同理,可得到最终结果数据处理1,基础数据资源302包括a—>c—>b—>d,未处理依赖资源303,包括a1—>a12—>a2—>b1—>a21—>a11—>a3,其中,数据资源e不包含其他数据资源的资源标识,确定为基础数据资源,经过正则表达式匹配到“保留”标签,因此,数据资源e不进行删除,不予处理。其中,未处理依赖资源303用于存放未进行删除处理的数据资源,用于后续的依赖资源查找。依次遍历基础数据资源302,通过数据资源a的信息包含的id访问数据资源a,对数据资源a进行删除,遍历未处理依赖资源303,查找到数据资源a的依赖资源,因此将数据资源a的信息放入缓存资源304中,这里可以以栈的形式存储,其中,数据资源a为栈底bottom,也为栈顶top,同时,对数据资源a的依赖资源a1进行删除操作,如数据处理2所示,数据资源a1存在依赖资源,加入缓存资源304中,为栈顶top,同理,经过处理,对数据资源a1的依赖资源a12进行删除操作,数据资源a12没有依赖资源,加入缓存资源304后,直接根据数据资源a12的id及数据类型调用删除方法进行删除操作,若删除成功,则得到系统数据资源301.a所示数据,对缓存资源304进行出栈操作,top--,若删除失败,则存储数据资源a12的失败信息。再对此时的栈顶数据资源a1进行操作,此时数据资源a1存在依赖资源a11,将数据资源a11加入缓存资源304中,此时未处理依赖资源303包括数据资源a2—>b1—>a21—>a3,对a11进行删除操作,此时数据资源a1不存在依赖资源,则对数据资源a1进行删除操作,删除成功后对缓存资源304进行出栈操作,此时的处理对象为数据资源a,遍历未处理依赖资源303,查找到数据资源a的依赖资源a2,对数据资源a2进行删除操作,在未处理依赖资源303中查找到数据资源a2的依赖资源a21,如上述操作所示,依次删除数据资源a21、数据资源a2,此时未处理依赖资源303中包括数据资源b1—>a3。同理可删除数据资源a3,此时数据资源a不存在依赖资源,将数据资源a进行删除,得到数据处理4所示结果,未处理依赖资源303包括数据资源b1,缓存资源304为空,基础数据资源302包括基础数据资源信息c—>b—>d,系统中数据资源包括数据资源c、数据资源b、数据资源b1、数据资源d、数据资源e。重复上述步骤,依次删除数据资源c、数据资源b1、数据资源b、数据资源d,最终得到系统数据资源301.c所示数据,包括数据资源e,数据处理5中基础数据资源302、未处理依赖资源303、缓存资源304均为空,释放基础数据资源302、未处理依赖资源303、缓存资源304所占空间,结束此次资源清理,将上述资源清理的结果反馈給数据资源对应的创建用户。可选的,这里假定数据资源a2、数据资源b删除失败,数据资源a2的创建用户账号为xx1,数据资源b的创建用户账号为xx2。其中,当对数据资源a2进行删除时删除失败,则将数据资源a2的删除结果存入删除结果文件中,具体的,若此文件已存在,则将上述数据资源a2的id及其创建用户的账号xx1、上述数据资源a2的删除失败原因存入此文件,否则创建一个新文件,存储上述数据资源a2的删除结果。其中,由于数据资源a2删除失败,则数据资源a也无法删除,同样存入上述文件中,当删除数据资源b时,删除失败,由于数据资源a2删除失败时已经存在/创建了删除结果文件,则直接将数据资源b的id及其创建用户的账号xx2、上述数据资源b删除失败的原因存入上述删除结果文件中。具体的,结束资源清理后,逐行读取文件内容,将本行的数据资源的删除结果反馈给创建用户的账号对应的创建用户。其中,读取第一行为数据资源a2的删除结果,将上述删除结果反馈给创建用户的账号xx1对应的用户,第二行为数据资源a的删除结果,同样反馈给创建用户的账号xx1对应的用户,删除失败原因为依赖资源无法删除,第三行为数据资源b的删除结果,将上述数据资源b的删除结果反馈给创建用户的的账号xx2对应的用户。其中,当数据资源a2删除失败时,则将数据资源的删除结果存入以创建用户账号xx1命名的文件中。具体的,若该文件已存在,则将上述数据资源a2的id、上述数据资源a2的创建用户账号、上述数据资源a2的删除失败原因存入此文件中,否则提取上述数据资源a2的创建用户账号xx1,创建以上述创建用户账号xx1命名的文件,存储上述数据资源a2的删除结果。由于数据资源a2删除失败,则数据资源a的依赖资源无法删除,因此也删除失败,将上述数据资源a的删除结果存入文件xx1中。继续删除,当数据资源b删除失败时,创建以xx2命名的文件,将数据资源b的删除结果存入文件xx2中。具体的,结束资源清理后,将得到的资源清理结果存储文件发送给上述资源清理结果存储文件名对应的创建用户,即将以xx1命名的文件发送给xx1对应的用户,将以xx2命名的文件发送给xx2对应的用户。本发明实施例通过根据预设的资源清理时间或收到的资源清理请求对资源进行清理,使用递归方式,查找引用基础数据资源的其他数据资源,进行递归删除。具体的,在本发明的一个实施例中,以平安公有云产品为例,平安公有云多数产品都是基于一个独立的隔离网络进行创建的,其中,上述隔离网络为在平安公有云上进行数据生成时划分的虚拟网络空间,一个隔离网络在公有云上体现为一个vpc,一个vpc为一个基础数据资源,在此vpc里,用户可以按需创建网络域、子网和云主机、弹性文件、负载均衡等计算、存储、网络类的产品,这些产品之间互相依赖或被依赖。具体的,参见图4,图4是平安公有云的一个vpc资源依赖图。这里假定用户a在平安公有云400上使用分配的一个vpc401创建了一个网络4011进行产品测试,在此基础上创建子网4012,下设置云主机4014及关系数据库4013,用于具体的数据处理及存储,在测试过程中,系统生成弹性文件4015、elb(elasticloadbalance)4016等共享文件,用于生成存储测试结果,其中,生成的文件依赖关系如图4所示,elb4016及弹性文件4015直接依赖于云主机4014和关系数据库4013,云主机4014和关系数据库4013依赖于子网4012,子网依赖于网络4011。具体的,此处的所有生成文件为单次使用,未被设置为保留。在本发明的该实施例中,到达预设的资源清理时间或收到资源清理请求后,对平安公有云400上的资源进行遍历,提取基础数据资源vpc401的信息,经过查找,基础数据资源vpc401存在依赖资源网络4011,将vpc401加入缓存,对依赖资源网络4011进行删除处理,网络4011存在依赖资源子网4012,将网络4011加入缓存处理依赖资源子网4012,查找子网4012的依赖资源,遍历数据资源后找到云主机4014依赖于子网4012,将子网4012加入缓存,处理云主机4014,同理,查找到elb4016依赖于云主机4014,将云主机4014加入缓存中,对elb4016进行删除处理,elb4016不存在依赖资源,删除elb4016,返回上一步操作,继续查找云主机4014的依赖资源,存在依赖资源弹性文件4015,则判断弹性文件4015是否存在依赖资源,由于弹性文件4015不存在依赖资源,因此删除弹性文件4015,返回继续处理云主机4014,此时云主机4014不存在依赖资源,将云主机4014取出缓存,删除云主机4014,再后序读取缓存,判断子网4012是否还存在依赖关系,查找到子网4012还存在依赖资源关系数据库4013,对关系数据库4013进行删除处理,,由于关系数据库4013的依赖资源elb4016及弹性文件4015已经被删除,此时关系数据库4013无依赖资源,直接进行删除,此时子网4012不存在依赖资源,将子网4012取出缓存,删除子网4012,继续后序读取缓存,对网络4011进行删除处理,此时网络4011不存在依赖资源,可直接取出缓存进行删除,最后释放所在的vpc401,完成此次资源清理。通过预设的资源清理时间或收到的资源清理请求自动进行资源清理,可以及时地释放资源空间,减少因资源不足对测试进度造成的影响。而通过依赖关系进行递归删除,在最大程度上实现了资源的清理,在资源中可能存在的资源利用过程中自动生成的一些数据资源也可以得到清理,避免了人工清理出现遗漏的情况出现,也节省了时间和人力。进一步的,请参见图5,是本发明实施例提供的一种基于递归的资源清理装置的结构示意图。如图5所示,该基于递归的资源清理装置1可以应用于上述图1所对应实施例中的服务器,所述基于递归的资源清理装置1可以包括:遍历处理模块10,存储模块20,删除模块30,判断模块40,设置模块50和反馈模块60;遍历处理模块10,用于遍历资源,查找未被标记保留的基础数据资源,并将上述基础数据资源的资源信息存储到存储模块20中;存储模块20,用于存储上述基础数据资源的资源信息及资源清理结果;删除模块30,用于若在第一资源的所处系统中未查找到上述第一资源的依赖资源,则删除上述第一资源,若在上述第一资源的所处系统中查找到上述第一资源的至少一个依赖资源,则分别将上述第一资源的至少一个依赖资源作为第一资源执行上述根据上述第一资源标识在上述第一资源的所处系统中查找所述第一资源的依赖资源的步骤,并将资源清理结果存入存储模块20中;判断模块40,用于判断上述基础数据资源是否被设置为保留,判断第一资源是否有依赖资源,及判断资源是否全部清理;设置模块50,用于获取用户设置的删除资源的指定时间及上述基础数据资源是否保留;反馈模块60,用于在资源清理结束后向用户反馈存储模块20中存储的资源清理结果,上述资源清理结果包括资源删除结果。其中,所述遍历处理模块10通过获取设置模块50的数据查找未被设置为保留的基础数据资源,具体功能实现方式可以参见上述图1对应实施例中的步骤s101和s103;所述判断模块40包括根据所述设置模块50的基础数据资源保留设置结果判断所述基础数据资源是否被设置为保留,所述判断模块40和所述删除模块30的具体功能实现方式可以参见上述图1对应实施例中的步骤s103-步骤s107,这里不再进行赘述。参见图6,图6是本申请实施例提供的服务器的结构示意图。如图6所示,本实施例中的服务器可以包括:一个或多个处理器601和存储器602。上述处理器601和存储器602通过总线603连接。存储器602用于存储计算机程序,该计算机程序包括程序指令,处理器601用于执行存储器602存储的程序指令,执行如下操作:判断基础数据资源是否被设置为保留,若上述基础数据资源未被设置为保留,则确定上述基础数据资源为第一资源;根据上述第一资源的资源标识在上述第一资源的所处系统中查找上述第一资源的依赖资源,上述第一资源的依赖资源为在生成时引用上述第一资源的数据资源;若在上述第一资源的所处系统中查找到上述第一资源的至少一个依赖资源,则分别将上述第一资源的至少一个依赖资源作为第一资源执行上述根据上述第一资源的资源标识在上述第一资源的所处系统中查找上述第一资源的依赖资源的步骤;若在上述第一资源的所处系统中未查找到上述第一资源的依赖资源,则删除上述第一资源,并将上述第一资源的被依赖资源作为第一资源执行上述根据上述第一资源的资源标识在上述第一资源的所处系统中查找上述第一资源的依赖资源的步骤。在一些可行的实施方式中,上述第一资源的资源标识包括上述第一资源的引用标识,上述处理器601用于:根据上述第一资源的引用标识在上述第一资源的所处系统中查找资源名称包括上述第一资源的引用标识的其他数据资源,作为上述第一资源的依赖资源;或者,根据上述第一资源的引用标识在上述第一资源的所处系统中查找资源内容包括上述第一资源的引用标识的其他数据资源,作为上述第一资源的依赖资源。在一些可行的实施方式中,上述处理器601用于:判断上述基础数据资源是否携带预设的保留标签,若是则确定上述基础数据资源被设置为保留,否则确定上述基础数据资源未被设置为保留;或读取上述基础数据资源的布尔标记,若上述基础数据资源的布尔标记为true值则确定上述基础数据资源被设置为保留,否则确定上述基础数据资源未被设置为保留。在一些可行的实施方式中,上述处理器601还用于:若确定到达预设的资源清理时间或接收到资源清理指令,则触发上述判断基础数据资源是否被设置为保留的步骤。在一些可行的实施方式中,上述处理器601用于:提取上述第一资源的资源信息,上述第一资源的资源信息包括上述第一资源的id,上述第一资源的id用于指示上述第一资源的存放地址;根据上述第一资源的资源类型调用对应的资源删除方法,并将上述第一资源的id作为上述资源删除方法的调用参数,对上述第一资源进行删除。在一些可行的实施方式中,上述第一资源的信息还包括上述第一资源的创建用户账号;上述处理器601还用于:根据上述第一资源的创建用户账号将上述第一资源的删除结果反馈给上述第一资源的创建用户,上述删除结果包括删除失败信息或删除成功信息。在一些可行的实施方式中,上述基础数据资源为虚拟私有云(vpc,virtualprivatecloud)。在一些可行的实施方式中,上述处理器601可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asid)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该处理器602可以包括只读存储器和随机存取存储器,并向处理器601提供指令和数据。处理器602的一部分还可以包括非易失性随机存取存储器。例如,存储器602还可以存储服务器类型的信息。具体实现中,上述服务器可通过其内置的各个功能模块执行如上述图1中各个步骤所提供的实现方式,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。在本申请实施例中,服务器可以通过预设的资源清理时间或收到的资源清理请求自动执行资源清理操作,使用全部遍历方式,获取未引用其他数据资源的基础数据资源,以此基础数据资源为基础,查找该基础数据资源的直接或间接的依赖资源,根据上述依赖关系,使用递归访问的方式,从未被其他数据资源引用的依赖资源开始删除,依次清除数据资源,最终在所有依赖资源删除后将基础数据资源进行删除,上述处理过程类似于树形结构,进行后序遍历删除,在最大程度上清理资源,减少资源遗漏的情况出现;同时在查找基础数据资源时,判断上述基础数据资源是否被设置为保留,若被设置为保留则不进行处理,避免了重要资源的误删情况,而且自动清理操作节省了时间和人力,保障资源充足。本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时实现图1中各个步骤所提供的基于递归的资源清理方法,具体可参见上述各个步骤所提供的实现方式,在此不再赘述。上述计算机可读存储介质可以是前述任一实施例提供的基于递归的资源清理装置或者上述服务器的内部存储单元或外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该服务器所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。本申请的权利要求书和说明书及附图中的术语“第一”是用于指示当前的处理对象,而不具备具体的含义。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。当前第1页12