一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种机器人任务处理方法、装置、电子设备和存储介质与流程

2022-11-28 12:46:52 来源:中国专利 TAG:


1.本发明涉及机器人技术领域,尤其涉及一种机器人任务处理方法、装置、电子设备和存储介质。


背景技术:

2.随着机器人行业的快速发展,各种服务机器人层出不穷,机器人在我们的生活、工作中也应用得越来越广泛。
3.机器人的数量和使用规模也随之增大,有很多机器人的定时任务需要处理,目前常用的处理方法是:将定时任务全部写入后台数据库中,后台每次查询时,数据库需要对存储的全量的定时任务进行排序,然后选出执行时间靠前的定时任务进行处理。
4.然而这种方式存在一定的不足:由于定时任务的数量巨大,每次后台查询时,数据库都要对大量的定时任务进行排序,对数据库造成巨大压力,甚至对机器人其他业务造成影响。


技术实现要素:

5.本发明提供了一种机器人任务处理方法、装置、电子设备和存储介质,以减少因处理机器人定时任务而对数据库造成的巨大压力。
6.根据本发明的一方面,提供了一种机器人任务处理方法,包括:响应于任务查询指令,访问任务排序文件;其中,任务排序文件用于保存定时任务的任务标识和任务执行时间,并按照任务执行时间对保存的定时任务进行排序;从任务排序文件中选出预设数量的目标定时任务;根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件;若满足,则根据目标定时任务的任务标识,从数据库中检索目标定时任务的任务执行参数,并根据任务执行参数执行目标定时任务;其中,数据库用于至少保存定时任务的任务标识和任务执行参数。
7.根据本发明的另一方面,提供了一种机器人任务处理装置,包括:访问模块,用于响应于任务查询指令,访问任务排序文件;其中,任务排序文件用于保存定时任务的任务标识和任务执行时间,并按照任务执行时间对保存的定时任务进行排序;筛选模块,用于从任务排序文件中选出预设数量的目标定时任务;判断模块,用于根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件;执行模块,用于若判断结果为满足,则根据目标定时任务的任务标识,从数据库中检索目标定时任务的任务执行参数,并根据任务执行参数执行目标定时任务;其中,数据库用于至少保存定时任务的任务标识和任务执行参数。
8.根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明实施例所述的机器人任务处理方法。
9.根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明实施例所述的机器人任务处理方法。
10.本发明实施例的技术方案,只需每次访问任务排序文件,即可确定要执行的定时任务,使得数据库在每次查询时无需对存储的定时任务进行排序,由此可以降低数据库的压力。
11.应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
12.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1是本发明实施例一提供的一种机器人任务处理方法的流程示意图;图2是本发明实施例二提供的一种机器人任务处理方法的流程示意图;图3是本发明实施例三提供的一种机器人任务处理方法的流程示意图;图4a是本发明实施例四提供的一种机器人任务处理方法的流程示意图;图4b是本发明实施例四提供的任务排序文件的示意图;图5是本发明实施例五提供的一种机器人任务处理方法的流程示意图;图6是本发明实施例六提供的一种机器人任务处理方法的流程示意图;图7是本发明实施例七提供的一种机器人任务处理装置的结构示意图;图8是本发明实施例的机器人任务处理方法的电子设备的结构示意图。
具体实施方式
14.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
15.目前,随着机器人种类和数量的增多,待执行的机器人定时任务也数量庞大。举例来说,有的机器人厂商出货量上万台,这些机器人如果需要进行定时的系统升级,那将至少产生上万个升级定时任务。
16.目前常用的处理方法是:将定时任务全部写入后台数据库中,每次查询时,数据库
需要对存储的全量的定时任务进行排序,然后选出执行时间靠前的定时任务进行处理。由于机器人的定时任务数量巨大,每次都对定时任务进行排序,对数据库造成巨大压力。
17.而为了减少对数据库的影响,本发明方案建立了一个任务排序文件,通过任务排序文件保存定时任务的任务标识和任务执行时间,并按照任务执行时间对保存的定时任务进行排序;同时将定时任务的任务执行参数等保存在数据库中。即任务排序文件中不包含具体的任务执行参数。一般来讲,任务标识和任务执行时间占用的数据量很小,而任务执行参数占用的数据量较大。如此,定时任务的排序可以通过任务排序文件确定,使得数据库中只进行定时任务的存储,而无需进行排序,即无需在后台每次查询时都对数据量很大的,包含具体的任务执行参数的定时任务进行排序,由此可以降低数据库的压力。具体的,本发明的机器人任务处理方法的流程可参见如下实施例。
18.实施例一图1为本发明实施例一提供了一种机器人任务处理方法的流程图,本实施例可适用于处理频繁发起与执行机器人定时任务的情况,该方法可以由机器人任务处理装置来执行,该机器人任务处理装置可以采用硬件和/或软件的形式实现,该机器人任务处理装置可配置于电子设备中。
19.如图1所示,机器人任务处理方法流程如下:s101、响应于任务查询指令,访问任务排序文件;其中,任务排序文件用于保存定时任务的任务标识和任务执行时间,并按照任务执行时间对保存的定时任务进行排序。
20.本实施例中,在首次构建完任务排序文件后,将用户、机器人或系统发起的所有定时任务的任务标识(例如任务id)和任务执行时间(即下次执行时间,可以用时间戳的形式表示)写入任务排序文件中,进而任务排序文件根据任务执行时间,按照由先到后的循序对定时任务进行排序。在此基础上,响应于周期性生成的任务查询指令,机器人后台中负责执行或下发指令使机器人执行定时任务的程序或服务只需访问任务排序文件,即可从中查找要执行的定时任务。在此需要说明的是,本发明方案中的定时任务为消毒任务、配送任务、回收任务、巡航任务、清洁任务、引导任务和升级任务中的至少一种。也就是说,本发明所提供的技术方案可以适用于多种类型的机器人的多种定时任务的统一管理和执行,机器人可以是配送机器人、引导机器人、清洁机器人等。因而,本发明的技术方案尤其适用于多类型、大数量的机器人的定时任务管理,能够提高整体的管理。
21.s102、从任务排序文件中选出预设数量的目标定时任务。
22.本实施例中,预设数量可以根据实际需要进行设定。由于任务排序文件已经对保存的定时任务进行排序处理,因此可将任务执行时间靠前的n个定时任务作为目标定时任务选出,其中,n可以根据需要设定。例如,可以根据当前后台服务器管理的机器人的数量、服务器的处理能力、任务查询指令的生成周期结合确定。当任务查询指令生成周期长,机器人数量多,服务器处理能力强时,n可以设置为较大的数值,例如100,提升定时任务的处理效率,避免大量定时任务积压。
23.s103、根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件。
24.本实施例中,虽然通过s102步骤选出多个目标定时任务,但并不一定每个目标定时任务都需要立即执行,因此还需要判断目标定时任务是否满足任务执行条件。在一种可
选的实施方式中,可根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件。具体的,判断目标定时任务的任务执行时间是否在当前时间之后,否是,则表明还没有到目标定时任务的执行时间,此时目标定时任务不满足任务执行条件;若否,则表明目标定时任务的执行时间早于或等于当前时间,需要立即执行,也即确定目标定时任务满足任务执行条件。除此之外,还可以结合机器人当前状态,判断目标定时任务是否满足任务执行条件,例如,针对选出的目标定时任务,若机器人当前正处于繁忙状态,则确定选出的目标定时任务不满足任务执行条件。在此需要说明的是,之所以有的目标定时任务的任务执行时间早于当前时间,是因为之前要执行目标定时任务时,机器人正处于繁忙状态,导致该目标定时任务的执行被延后,如此使得目标定时任务的执行时间早于当前时间。
25.在确定目标定时任务满足任务执行条件后,可通过s104的步骤执行目标定时任务。
26.s104、根据目标定时任务的任务标识,从数据库中检索目标定时任务的任务执行参数,并根据任务执行参数执行目标定时任务。
27.本实施例中,数据库用于至少保存定时任务的任务标识和任务执行参数,其中,任务执行参数可选的是执行任务所需要的运行参数;示例性的,任务执行参数可以是执行从a点到b点的消毒/巡航/引导任务,还可以是执行到哪个充电桩,持续多久时间的充电任务,又或者是执行访问哪个地址的更新包进行软件升级等。如此只需根据目标定时任务的任务标识,在数据库中进行检索,即可得到目标定时任务的任务执行参数,进而按照任务执行参数执行相应的目标定时任务。
28.本发明实施例中,预先构建一个任务排序文件,通过任务排序文件保存定时任务的任务标识和任务执行时间,并按照任务执行时间对保存的定时任务进行排序;同时将定时任务的任务标识和任务执行参数等保存在数据库中。即任务排序文件中不包含具体的任务执行参数。一般来讲,任务标识和任务执行时间占用的数据量很小,而任务执行参数占用的数据量较大。如此,定时任务的排序可以通过任务排序文件确定,使得数据库中只进行定时任务的存储,而无需进行排序,即无需在后台每次查询时都对数据量很大的,包含具体的任务执行参数的定时任务进行排序,由此可以降低数据库的压力;而且在确定目标定时任务满足执行条件后,只需根据目标定时任务的任务标识,即可快速从数据库中获取需要的任务执行参数。
29.实施例二图2为本发明实施例二提供的一种机器人任务处理方法的流程图。在此基础上,参见图2,该方法流程包括如下步骤:s201、响应于任务查询指令,访问任务排序文件;其中,任务排序文件用于保存定时任务的任务标识和任务执行时间,并按照任务执行时间对保存的定时任务进行排序。
30.在一种可选的实施方式中,任务排序文件以树形结构保存排序后的定时任务,例如以完全二叉树的形式保存排序后的定时任务;树形结构的每个任务节点表示一个定时任务,任务节点中保存有定时任务的任务标识和任务执行时间。需要说明的是,任务排序文件按小顶堆格式对各定时任务进行排列,如此树形结构的根节点对应的定时任务的执行时间最早,上层任务节点的任务执行时间,小于下层任务节点的任务执行时间,而针对同一层的任务节点,从左到右各任务节点的任务执行时间依次增大。
31.本发明实施例中,定时任务属于机器人任务,可以为消毒任务、配送任务、回收任务、巡航任务、清洁任务、引导任务和升级任务中的至少一种。
32.s202、从任务排序文件中选出预设数量的目标定时任务。
33.可选的,将任务排序文件中任务执行时间靠前的n个定时任务作为目标定时任务。
34.s203、根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件。
35.在一种可选的实施方式中,根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件,包括:判断目标定时任务的任务执行时间是否在当前时间之后,若否,则确定目标定时任务满足任务执行条件。
36.本实施例中,在确定目标定时任务满足任务执行条件的情况下,并行执行s204和s205的步骤。
37.s204、根据目标定时任务的任务标识,从数据库中检索目标定时任务的任务执行参数,并根据任务执行参数执行目标定时任务;其中,数据库用于至少保存定时任务的任务标识和任务执行参数。
38.具体过程,参见上述实施例的描述,在此不在赘述。
39.s205、删除任务排序文件中表示目标定时任务的任务节点,并触发任务排序文件对剩余的任务节点进行重新排序。
40.本实施例中,在确定目标定时任务满足任务执行条件后,那么该目标定时任务必然会被执行,此时需要将该目标定时任务对应的任务节点,从任务排序文件中删除,以保证任务排序文件中保存的均是未执行的定时任务。而在删除任务排序文件中表示目标定时任务的任务节点后,任务排序文件对剩余的任务节点进行重新排序,以便其他负责执行定时任务的程序或服务访问该任务排序文件时,可以快速且准确的确定执行时间靠前的定时任务。
41.本实施例中,在确定目标定时任务满足任务执行条件的情况下,触发任务排序文件删除满足执行条件的目标定时任务对应的任务节点,并对剩余任务节点进行重新排序,可以保证其他程序或服务访问该任务排序文件时,能够快速且准确的确定执行时间靠前的目标定时任务。
42.实施例三图3为本发明实施例三提供的一种机器人任务处理方法的流程图。参见图3,该方法流程包括如下步骤:s301、响应于任务查询指令,访问任务排序文件,为任务排序文件添加文件锁;其中,任务排序文件用于保存定时任务的任务标识和任务执行时间,并按照任务执行时间对保存的定时任务进行排序。
43.在一种可选的实施方式中,任务排序文件以树形结构保存排序后的定时任务,例如以完全二叉树的形式保存排序后的定时任务;树形结构的每个任务节点表示一个定时任务,任务节点中保存有定时任务的任务标识和任务执行时间。需要说明的是,任务排序文件按小顶堆格式对各定时任务进行排列,如此树形结构的根节点对应的定时任务的执行时间最早,上层任务节点的任务执行时间,小于下层任务节点的任务执行时间,而针对同一层的任务节点,从左到右各任务节点的任务执行时间依次增大。定时任务属于机器人任务,可以
为消毒任务、配送任务、回收任务、巡航任务、清洁任务、引导任务和升级任务中的至少一种。
44.而通过上述实施例二可知,当一个用于执行定时任务程序或服务访问任务排序文件,并选出满足执行条件的目标定时任务后,会触发任务排序文件删除相应任务节点,并对剩余任务节点进行重新排序。因此,如果有多个程序或服务同时访问任务排序文件,且并行的触发任务排序文件删除相应任务节点,以及对剩余任务节点进行重新排序,则会导致任务排序文件中的数据出现混乱,将严重影响查找执行时间靠前的定时任务。因此,本实施例中时,当一个用于执行定时任务的程序或服务访问任务排序文件时,为任务排序文件添加文件锁,其中,文件锁用于防止任务排序文件被多个程序或服务同时访问,进而能够避免出现数据混乱,提升查找和执行的稳定性。
45.s302、从任务排序文件中选出预设数量的目标定时任务。
46.可选的,将任务排序文件中任务执行时间靠前的n个定时任务作为目标定时任务。
47.s303、根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件。
48.在一种可选的实施方式中,根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件,包括:判断目标定时任务的任务执行时间是否在当前时间之后,若否,则确定目标定时任务满足任务执行条件。
49.在确定目标定时任务满足任务执行条件的情况下,并行执行s304和s305-s306的步骤。
50.s304、则根据目标定时任务的任务标识,从数据库中检索目标定时任务的任务执行参数,并根据任务执行参数执行目标定时任务;其中,数据库用于至少保存定时任务的任务标识和任务执行参数。
51.s305、删除任务排序文件中表示目标定时任务的任务节点,并触发任务排序文件对剩余的任务节点进行重新排序。
52.s306、在剩余任务节点重新排序后,结束对任务排序文件的访问,并释放文件锁。
53.本实施例中,通过对任务排序文件添加文件锁,禁止多个程序或服务同时访问任务排序文件,可避免任务排序文件中的定时任务出现混乱;在剩余任务节点重新排序后,结束对任务排序文件的访问,并释放文件锁,如此,通过及时释放文件锁,以便其他程序或服务访问任务排序文件,进而可以保证定时任务执行的效率。
54.实施例四图4a为本发明实施例四提供的一种机器人任务处理方法的流程图。参见图4a,该方法流程包括如下步骤:s401、根据预设的切割参数,对任务排序文件进行切割,得到多个任务排序子文件。
55.其中,任务排序文件以树形结构保存排序后的定时任务,例如以完全二叉树的形式保存排序后的定时任务;树形结构的每个任务节点表示一个定时任务,而定时任务可以是消毒任务、配送任务、回收任务、巡航任务、清洁任务、引导任务和升级任务中的至少一种。任务节点中保存有定时任务的任务标识和任务执行时间。需要说明的是,任务排序文件按小顶堆格式对各定时任务进行排列,如此树形结构的根节点对应的定时任务的执行时间
最早,上层任务节点的任务执行时间,小于下层任务节点的任务执行时间,而针对同一层的任务节点,从左到右各任务节点的任务执行时间依次增大。由于机器人的定时任务的数量众多,导致任务排序文件较大。而程序或服务在访问任务排序文件时,需要将文件全部内容读取到程序或服务中处理,如果任务排序文件过大,会影响读取效率。因此为了保证后续文件内容读取效率,可将任务排序文件分割成多个任务排序子文件。可选的,根据预设的切割参数,对任务排序文件进行切割,得到多个任务排序子文件,其中,切割参数为每个任务排序子文件中所包括的任务节点的最大数量,除此之外,切割参数还可以指定任务排序文件被分割成多少个任务排序子文件,例如指定将任务排序文件分割成5个任务排序子文件。
56.示例性的,参见图4b,其示出了任务排序文件的示意图,该任务排序文件中包括8个任务节点,其中,根节点9对应的定时任务的任务执行时间最早;在树结构的第二层中,任务节点5和8对应的定时任务的任务执行时间晚于根节点9对应的定时任务的任务执行时间,且任务节点8对应的定时任务的任务执行时间晚于根节点5对应的定时任务的任务执行时间。若切割参数为“切割成5个任务排序文件,每个任务排序子文件最多包括3个任务节点”,如此,可按照从上到下指定块去围住指定数量的逻辑进行分割,切割后5个任务排序子文件包括的任务节点分别为“9、5、8”,“2、1”,“3”,“4”,“7”。
57.可选的,可以根据定时任务的类型不同对任务排序文件进行切割和重新组合,使得相同类型的定时任务处于同一个任务排序子文件,以供不同的线程分别访问执行,提高执行效率且避免任务混乱。
58.s402、从多个任务排序子文件中,确定目标任务排序子文件。
59.其中,目标任务排序子文件中根节点所包括的定时任务的任务执行时间最早。因此,确定的目标任务排序子文件本质上是根文件,该文件中的定时任务的执行时间早于其他任务排序子文件。
60.s403、响应于任务查询指令,访问目标任务排序子文件。
61.本发明实施例中,访问任务排序文件的目的是选出执行时间靠前的几个目标定时任务,由于目标任务排序子文件中的定时任务的执行时间早于其他任务排序子文件,因此每次访问时,首先访问目标任务排序子文件,如果目标任务排序子文件中包括的定时任务较少,可以读取下一任务排序子文件。需要说明的是,由于预先对任务排序文件进行分割,使得在访问任务排序文件时,只需访问部分任务排序文件子文件,而无需访问全量的任务排序文件,如此可以保证访问效率。
[0062] s404、从目标任务排序子文件中选出预设数量的目标定时任务。
[0063]
可选的,将目标任务排序子文件中任务执行时间靠前的n个定时任务作为目标定时任务。
[0064]
s405、根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件。
[0065]
在一种可选的实施方式中,根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件,包括:判断目标定时任务的任务执行时间是否在当前时间之后,若否,则确定目标定时任务满足任务执行条件。
[0066]
在确定目标定时任务满足任务执行条件的情况下,并行执行s406和s407的步骤。
[0067]
s406、根据目标定时任务的任务标识,从数据库中检索目标定时任务的任务执行
参数,并根据任务执行参数执行目标定时任务;其中,数据库用于至少保存定时任务的任务标识和任务执行参数。
[0068]
s407、删除任务排序文件中表示目标定时任务的任务节点,并触发任务排序文件对剩余的任务节点进行重新排序。
[0069]
其中,s406和s407的步骤的详细描述,可参见上述实施例,在此不再赘述。
[0070]
本发明实施例中,预先将任务排序文件分割成多个任务排序文件子文件,并确定目标任务排序子文件,进而通过首先访问目标任务排序子文件,以获取目标定时任务,如此避免访问完整的任务排序文件,提高了文件访问效率,进而保证了整体的机器人定时任务的处理效率。
[0071]
实施例五图5为本发明实施例五提供的一种机器人任务处理方法的流程图。参见图5,该方法流程包括如下步骤:s501、根据预设的切割参数,对任务排序文件进行切割,得到多个任务排序子文件。
[0072]
其中,任务排序文件以树形结构保存排序后的定时任务,例如以完全二叉树的形式保存排序后的定时任务;树形结构的每个任务节点表示一个定时任务,定时任务可以是消毒任务、配送任务、回收任务、巡航任务、清洁任务、引导任务和升级任务中的至少一种。任务节点中保存有定时任务的任务标识和任务执行时间。需要说明的是,任务排序文件按小顶堆格式对各定时任务进行排列,如此树形结构的根节点对应的定时任务的执行时间最早,上层任务节点的任务执行时间,小于下层任务节点的任务执行时间,而针对同一层的任务节点,从左到右各任务节点的任务执行时间依次增大。由于机器人的定时任务的数量众多,导致任务排序文件较大。而程序或服务在访问任务排序文件时,需要将文件全部内容读取到程序或服务中处理,如果任务排序文件过大,会影响读取效率。因此为了保证后续文件内容读取效率,可将任务排序文件分割成多个任务排序子文件。可选的,根据预设的切割参数,对任务排序文件进行切割,得到多个任务排序子文件,其中,切割参数为每个任务排序子文件中所包括的任务节点的最大数量,除此之外,切割参数还可以指定任务排序文件被分割成多少个任务排序子文件,例如指定将任务排序文件分割成5个任务排序子文件。
[0073]
s502、从多个任务排序子文件中,确定目标任务排序子文件。
[0074]
其中,目标任务排序子文件中根节点所包括的定时任务的任务执行时间最早。因此,确定的目标任务排序子文件本质上是根文件,该文件中的定时任务的执行时间早于其他任务排序子文件。
[0075]
s503、响应于任务查询指令,访问目标任务排序子文件。
[0076]
本发明实施例中,访问任务排序文件的目的是选出执行时间靠前的几个目标定时任务,由于目标任务排序子文件中的定时任务的执行时间早于其他任务排序子文件,因此每次访问时,首先访问目标任务排序子文件,如果目标任务排序子文件中包括的定时任务较少,可以读取下一任务排序子文件。需要说明的是,由于预先对任务排序文件进行分割,使得在访问任务排序文件时,只需访问部分任务排序文件子文件,而无需访问全量的任务排序文件,如此可以保证访问效率。
[0077] s504、从目标任务排序子文件中选出预设数量的目标定时任务。
[0078]
可选的,将目标任务排序子文件中任务执行时间靠前的n个定时任务作为目标定时任务。
[0079]
s505、根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件。
[0080]
在一种可选的实施方式中,根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件,包括:判断目标定时任务的任务执行时间是否在当前时间之后,若否,则确定目标定时任务满足任务执行条件。
[0081]
在确定目标定时任务满足任务执行条件的情况下,并行执行s506和s507-s509的步骤。
[0082]
s506、删除任务排序文件中表示目标定时任务的任务节点,并触发任务排序文件对剩余的任务节点进行重新排序。
[0083]
s507、根据目标定时任务的任务标识,从数据库中检索目标定时任务的任务执行参数,并根据任务执行参数执行目标定时任务;其中,数据库用于至少保存定时任务的任务标识和任务执行参数。
[0084]
本实施例中,数据库中除了保存定时任务的任务标识和任务执行参数外,还保存有每个定时任务的任务执行时间和执行计划,其中,执行计划可以是通过cron表达式记录的,可用于表征定时任务是一次性任务还是需要多次执行的任务。
[0085]
在执行完目标定时任务之后,机器人任务处理方法还包括s508-s509的步骤。
[0086]
s508、根据目标定时任务的执行计划,判断目标定时任务是否属于需要多个时间段执行的任务。
[0087]
示例性的,若目标定时任务的执行计划为“每天15:00执行”,可知该目标定时任务属于需要多个时间段执行的任务,也即本次执行完以后,后续还要执行。而为了保证后续能够正常执行,需要执行s509的步骤。
[0088]
s509、根据执行计划更新数据库中保存的目标定时任务的任务执行时间;将更新任务执行时间的目标定时任务,重新插入到任务排序文件中。
[0089]
本实施例中,若目标定时任务属于需要多个时间段执行的任务,在本次执行完之后,不能将该目标定时任务从数据库中删除,反之应该更新该目标定时任务的内容,例如根据执行计划更新数据库中保存的目标定时任务的任务执行时间。由于s506步骤将目标定时任务从人排排序文件中删除了,因此为了保证后续还能查找到该目标定时任务,需要重新确定该目标定时任务的执行时间,并将将该目标定时任务重新插入任务排序文件中。需要说明的是,如果将目标定时任务插入某一任务排序子文件后,使得该任务排序子文件不满足切割参数后,可根据切割参数重新进行文件分割。
[0090]
本实施例中,在执行完目标定时任务后,若判断目标定时任务不属于多个时间段执行的任务,则从数据库中将其删除即可。
[0091]
本实施例中,针对需要多个时间段执行的目标定时任务,在本次执行完以后,更新数据库中执行时间以及将该目标定时任务重新插入任务排序文件中,可以保证目标定时任务下次能够正常执行。
[0092]
进一步的,数据库中还记录每个定时任务所在的任务排序子文件;如果用户或系统主动删除数据库中某一定时任务时,响应于删除数据库中任一定时任务,根据数据库中
记录的该定时任务所在的任务排序子文件,可以快速定位到任务排序子文件,进而将任务排序子文件中对应的任务节点删除。如此可以保证机器人任务处理的效率。
[0093]
实施例六图6为本发明实施例六提供的一种机器人任务处理方法的流程图。本实施例是在上述实施例的基础上进行优化,主要增加了对新发起的定时任务的处理流程,参见图6,该方法流程包括如下步骤:s601、响应于用户或机器人系统发起新的定时任务,将新的定时任务的任务标识和任务执行时间插入到对应的任务排序子文件中。
[0094]
s602、将新的定时任务的任务标识、任务执行参数、执行计划、任务执行时间和定时任务所在的任务排序子文件,保存在数据库中。
[0095]
本实施例中,针对用户或机器人系统发起新的定时任务,将新的定时任务分成两个部分,第一部分包括任务标识和任务执行时间,该部分需要插入到对应的任务排序子文件中;第二部分包括任务标识、任务执行参数、执行计划、任务执行时间和定时任务所在的任务排序子文件,需要保存在数据库中;其中,定时任务所在的任务排序子文件是在s601的基础上确定的。如此使得定时任务的排序主要由任务排序文件完成,而数据库并不需要执行任务排序的操作,使得后续任务查询时,减小对数据库造成压力,也即减小了查询定时任务对数据库的影响。
[0096]
实施例七图7为本发明实施例七提供的一种机器人任务处理装置的结构示意图,本实施例可适用于处理频繁发起与执行机器人定时任务的情况。如图7所示,该装置包括:访问模块701,用于响应于任务查询指令,访问任务排序文件;其中,任务排序文件用于保存定时任务的任务标识和任务执行时间,并按照任务执行时间对保存的定时任务进行排序;筛选模块702,用于从任务排序文件中选出预设数量的目标定时任务;判断模块703,用于根据目标定时任务的任务执行时间,判断目标定时任务是否满足任务执行条件;执行模块704,用于若判断结果为满足,则根据目标定时任务的任务标识,从数据库中检索目标定时任务的任务执行参数,并根据任务执行参数执行目标定时任务;其中,数据库用于至少保存定时任务的任务标识和任务执行参数。
[0097]
在上述实施例的基础上,可选的,定时任务包括消毒任务、配送任务、回收任务、巡航任务、清洁任务、引导任务和升级任务中的至少一种。
[0098]
在上述实施例的基础上,可选的,判断模块还用于:判断目标定时任务的任务执行时间是否在当前时间之后,若否,则确定目标定时任务满足任务执行条件。
[0099]
在上述实施例的基础上,可选的,任务排序文件以树形结构保存排序后的定时任务;树形结构的每个任务节点表示一个定时任务,任务节点中保存有定时任务的任务标识和任务执行时间;相应的,机器人任务处理装置还包括:删除触发模块,用于在确定目标定时任务满足任务执行条件之后,删除任务排序
文件中表示目标定时任务的任务节点,并触发任务排序文件对剩余的任务节点进行重新排序。
[0100]
在上述实施例的基础上,可选的,机器人任务处理装置还包括:添加锁模块,用于在访问任务排序文件时,为任务排序文件添加文件锁;文件锁用于防止任务排序文件被多个程序或服务同时访问;释放锁模块,用于在剩余任务节点重新排序后,结束对任务排序文件的访问,并释放文件锁。
[0101]
在上述实施例的基础上,可选的,机器人任务处理装置还包括:文件分割模块,用于根据预设的切割参数,对任务排序文件进行切割,得到多个任务排序子文件;其中,切割参数为每个任务排序子文件中所包括的任务节点的最大数量;文件筛选模块,用于从多个任务排序子文件中,确定目标任务排序子文件;其中,目标任务排序子文件中根节点所包括的定时任务的任务执行时间最早;相应的,筛选模块还用于:从目标任务排序子文件中选出预设数量的目标定时任务。
[0102]
在上述实施例的基础上,可选的,数据库中还记录每个定时任务所在的任务排序子文件;相应的,机器人任务处理装置还包括:任务节点删除模块,用于响应于删除数据库中任一定时任务,根据数据库中记录的该定时任务所在的任务排序子文件,将任务排序子文件中对应的任务节点删除。
[0103]
在上述实施例的基础上,可选的,数据库中还保存有每个定时任务的任务执行时间和执行计划;相应的,机器人任务处理装置还包括:任务属性判断模块,用于在执行完目标定时任务之后,根据目标定时任务的执行计划,判断目标定时任务是否属于需要多个时间段执行的任务;更新模块,用于若判断结果为是,则执行如下操作:根据执行计划更新数据库中保存的目标定时任务的任务执行时间;将更新任务执行时间的目标定时任务,重新插入到任务排序文件中。
[0104]
在上述实施例的基础上,可选的,机器人任务处理装置还包括:节点插入模块,用于响应于用户或机器人系统发起新的定时任务,将新的定时任务的任务标识和任务执行时间插入到对应的任务排序子文件中;数据保存模块,用于将新的定时任务的任务标识、任务执行参数、执行计划、任务执行时间和定时任务所在的任务排序子文件,保存在数据库中。
[0105]
本发明实施例所提供的机器人任务处理装置可执行本发明任意实施例所提供的机器人任务处理方法,具备执行方法相应的功能模块和有益效果。
[0106]
实施例八图8示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表
等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
[0107]
如图8所示,电子设备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。
[0108]
电子设备10中的多个部件连接至i/o接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0109]
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如执行机器人任务处理方法。
[0110]
在一些实施例中,机器人任务处理方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由rom12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到ram13并由处理器11执行时,可以执行上文描述的机器人任务处理方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行机器人任务处理方法。
[0111]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0112]
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0113]
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、
或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0114]
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0115]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、区块链网络和互联网。
[0116]
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。
[0117]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
[0118]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献