一种指令执行方法、装置及系统的制作方法
【专利摘要】本申请公开了一种指令执行方法及装置,该方法服务器在执行一个定时执行指令时,可以根据针对该定时执行指令预设的资源配置信息,采用相应的资源执行该定时执行指令,从而执行该定时执行指令时不会占用服务器全部的资源,因此可有效避免发生资源抢占的情况,在服务器执行定时执行指令的过程中可保证服务器提供的其他服务的质量。
【专利说明】一种指令执行方法、装置及系统
【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种指令执行方法、装置及系统。
【背景技术】
[0002]定时执行指令是操作系统中最常用的指令之一,用于在指定的时刻到来时执行,以完成某些操作。定时执行指令中携带执行时刻信息,用于指示该定时执行指令的执行时亥IJ,这些定时执行指令通常被写入在某个特定的脚本中。
[0003]例如,在Unix和类Unix操作系统中,定时执行指令被写入在Crontab脚本中。Unix和类Unix操作系统中的Crontab脚本用于设置定时执行指令,Crontab脚本中的定时执行指令的执行过程为:服务器通过自身的Unix或类Unix操作系统启动crond守护进程,crond守护进程周期性(如以I分钟为周期)的根据当前时刻信息,判断Crontab脚本中是否存在执行时刻信息与当前时刻信息匹配的定时执行指令,如果存在,则执行相应的定时执行指令。
[0004]然而,在现有技术中,服务器在执行定时执行指令时,并未对执行该定时执行指令所占用的资源进行限制,这就意味着定时执行指令的执行过程将占用服务器中全部的资源(如服务器的CPU、内存等资源),影响了服务器所提供的其他服务的质量。
[0005]例如,假设Crontab脚本中的一个定时执行指令是整理一天时间内的日志文件,该定时执行指令的执行时刻信息是O点,则服务器会在每天的O点执行Crontab中的该定时执行指令。在执行该定时执行指令的过程中,由于服务器并未对其占用的资源进行限制,因此该定时执行指令的执行会占用该服务器中全部的资源。如果该定时执行指令在执行的过程中,有用户访问服务器,那么就会由于服务器自身的剩余资源过少而产生资源抢占的情况,降低该服务器向用户提供服务的质量。
【发明内容】
[0006]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的指令执行方法、装置及系统,能够有效地避免发生资源抢占的情况,在服务器执行定时执行指令的过程中提高服务器提供的其他服务的质量。
[0007]根据本发明的第一个方面,提出一种指令执行方法,包括:
[0008]为定时执行指令设置资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时要使用的资源;
[0009]当所述定时执行指令的执行时刻信息与当前时刻信息匹配时,将所述资源配置信息中规定的资源分配给所述定时执行指令;
[0010]采用分配的资源执行所述定时执行指令。
[0011]可选地,为所述定时执行指令设置资源配置信息进一步包括:
[0012]设置所述定时执行指令在执行时所要使用的中央处理器CPU的CPU标识、相对共享CPU时间、内存、磁盘输入/输出接口的标识中的至少一种。[0013]可选地,所述方法还包括:
[0014]为所述定时执行指令设置对应的设定时长;
[0015]采用分配的资源执行所述定时执行指令进一步包括:
[0016]在执行所述定时执行指令时,监控所述定时执行指令的执行时长;并
[0017]当监控的所述执行时长达到所述设定时长时,终止所述定时执行指令的执行。
[0018]可选地,所述方法还包括:
[0019]根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
[0020]根据本发明的第二个方面,提出一种指令执行方法,包括:
[0021]根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
[0022]确定查找到的所述定时执行指令对应的资源配置信息,其中,所述资源配置信息是根据指定规则,预先针对所述定时执行指令设置的;以及
[0023]采用所述资源配置信息所规定的资源,执行所述定时执行指令。
[0024]可选地,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令之前,还包括:
[0025]接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本;
[0026]查找执行时刻信息与所述当前时刻信息匹配的定时执行指令进一步包括:
[0027]在接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
[0028]确定查找到的所述定时执行指令对应的资源配置信息进一步包括:
[0029]在接收到的所述脚本中,确定查找到的所述定时执行指令对应的资源配置信息。
[0030]可选地,执行所述定时执行指令进一步包括:
[0031]确定所述定时执行指令对应的设定时长,其中,所述设定时长是预先针对所述定时执行指令设置的;并
[0032]监控所述定时执行指令的执行时长;以及
[0033]当监控的所述执行时长达到确定的所述设定时长时,终止所述定时执行指令的执行。
[0034]可选地,执行所述定时执行指令之后,还包括:
[0035]根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
[0036]根据本发明的第三个方面,提出一种指令执行装置,包括:
[0037]查找模块,用于根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
[0038]确定模块,用于确定所述查找模块查找到的所述定时执行指令对应的资源配置信息,其中,所述资源配置信息是根据指定规则,预先针对所述定时执行指令设置的;
[0039]执行模块,用于采用所述资源配置信息所规定的资源,执行所述定时执行指令。
[0040]可选地,所述装置还包括:[0041]接收模块,用于接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本;
[0042]所述查找模块具体用于,在所述接收模块接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
[0043]所述确定模块具体用于,在所述接收模块接收到的所述脚本中,确定所述查找模块查找到的所述定时执行指令对应的资源配置信息。
[0044]可选地,所述执行模块具体用于,确定所述定时执行指令对应的设定时长,其中,所述设定时长是预先针对所述定时执行指令设置的;监控所述定时执行指令的执行时长,当监控的所述执行时长达到确定的所述设定时长时,终止所述定时执行指令的执行。
[0045]可选地,所述装置还包括:
[0046]日志模块,用于在所述执行模块执行所述定时执行指令之后,根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
[0047]根据本发明的第四个方面,提出一种指令执行系统,包括:
[0048]管理器,用于为定时执行指令设置资源配置信息,向服务器发送定时执行指令以及所述定时执行指令对应的资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时所要使用的资源;
[0049]服务器,用于根据当前时刻信息,在管理器发送的定时执行指令中查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;确定查找到的所述定时执行指令对应的资源配置信息;采用所述资源配置信息所规定的资源,执行查找到的所述定时执行指令。
[0050]可选地,所述管理器具体用于,向服务器发送携带定时执行指令以及定时执行指令对应的资源配置信息的脚本,其中,所述管理器向每个服务器发送的脚本均相同;
[0051]所述服务器具体用于,接收所述管理器发送的所述脚本,在接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令,并在接收到的所述脚本中,确定查找到的所述定时执行指令对应的资源配置信息。
[0052]可选地,所述管理器还用于,为定时执行指令设置对应的指定服务器标识,并将设置的指定服务器标识携带在所述脚本中;
[0053]所述服务器还用于,在执行查找到的所述定时执行指令之前,确定所述脚本中携带的、查找到的所述定时执行指令对应的指定服务器标识中包含所述服务器自身的服务器标识。
[0054]根据本发明提供的指令执行方法,服务器在执行一个定时执行指令时,可以根据针对该定时执行指令预设的资源配置信息,采用相应的资源执行该定时执行指令,从而执行该定时执行指令时不会占用服务器全部的资源,因此可有效避免发生资源抢占的情况,在服务器执行定时执行指令的过程中可保证服务器提供的其他服务的质量。
【专利附图】
【附图说明】
[0055]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:[0056]图1为依据本发明一个实施例的指令执行方法;
[0057]图2为依据本发明另一个实施例的指令执行方法;
[0058]图3为依据本发明一个实施例的管理器与多个服务器的组网架构示意图;
[0059]图4为依据本发明图3所示的实施例中任一服务器执行定时执行指令的详细方法;
[0060]图5为依据本发明一个实施例的指令执行装置结构示意图;
[0061]图6为依据本发明一个实施例的指令执行系统结构示意图。
【具体实施方式】
[0062]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0063]下面结合说明书附图,对本发明实施例进行详细描述。
[0064]图1为依据本发明一个实施例的指令执行方法,可以包括步骤:
[0065]SlOl:为定时执行指令设置资源配置信息。
[0066]其中,资源配置信息规定了该定时执行指令执行时所要使用的资源。
[0067]S102:当该定时执行指令的执行时刻信息与当前时刻信息匹配时,将该资源配置信息中规定的资源分配给该定时执行指令。
[0068]S103:采用分配的资源执行该定时执行指令。
[0069]从上述可知,依据该实施例,为定时执行指令设置资源配置信息,即,为每一个定时执行指令设置该定时执行指令执行时所要使用的资源。当该定时执行指令的执行时刻信息与当前时刻信息匹配时,将该资源配置信息中规定的资源分配给该定时执行指令,也就是说,当该定时执行指令的执行时间到来时,就把为该定时执行指令设置的资源分配信息中规定的资源分配给该定时执行指令,然后,采用分配给该定时执行指令的资源来执行该定时执行指令。从而,使得在执行定时执行指令时,只采用资源配置信息所规定的资源,而不会采用全部资源,因此可以有效避免了定时执行指令执行过程中占用系统全部资源而影响对其他服务的资源供应,因而大大提高了系统提供服务的质量。
[0070]依据本发明的一个实施例,可预先针对每个要执行的定时执行指令设置对应的资源配置信息,预设的资源配置信息可以写入定时执行指令所在的脚本中。也即,除了将要执行的定时执行指令以及每个定时执行指令对应的执行时刻信息写入在脚本中以外,还可将预设的每个定时执行指令对应的资源配置信息写入在脚本中。
[0071]依据本发明的一个实施例,在图1所示的步骤SlOl中,可按照一定的规则,为每个要执行的定时执行指令设置资源配置信息,该资源配置信息所规定的资源就是该定时执行指令在执行时所要占用的资源。具体的,执行一个定时执行指令所要占用的资源包括:中央处理器(CentralProcessingUnit,CPU)、相对共享CPU时间、内存、磁盘输入/输出(Input/Output,I/O)接口中的至少一种。则针对一个定时执行指令设置资源配置信息的方法的一个示例可以包括:设置该定时执行指令在执行时所要占用的CPU的CPU标识、相对共享CPU时间、内存、磁盘I/O接口标识中的至少一种。也就是说,预设的资源配置信息中可包括:CPU标识、相对共享CPU时间、内存大小、磁盘I/O接口标识中的至少一种。需要说明的是,对于单核的服务器来说,资源配置信息中可不包括CPU标识,而对于多核的服务器来说,资源配置信息中则可以包括CPU标识。
[0072]在设定所要占用的CPU标识和磁盘I/O接口的标识时,可随机在服务器自身的多个CPU中任意选择一个或几个CPU,在服务器自身的多个磁盘I/O接口中任意选择一个或几个磁盘I/o接口,并将执行该定时执行指令所要占用的CPU的标识设定为选择出的CPU的标识,将所要占用的磁盘I/o接口的标识设定为选择出的磁盘I/O接口的标识。当然,也可以根据其他规则设定定时执行指令所要占用的CPU和磁盘I/O的标识,例如,基于负载均衡的考虑,可根据服务器自身CPU的数量,轮循的为每个要执行的定时执行指令设定其所要占用的CPU的标识,根据服务器自身磁盘I/O的数量,轮循的为每个要执行的定时执行指令设定其所要占用的磁盘I/o的标识。或者,也可以预设每个CPU与定时执行指令的指令类型的对应关系,当要执行某个定时执行指令时,根据该定时执行指令的指令类型,为该定时执行指令设定其要占用的CPU的标识即为该定时指令的指令类型对应的CPU的标识,类似的,可以预设每个I/o与定时执行指令的指令类型的对应关系,当要执行某个定时执行指令时,根据该定时执行指令的指令类型,为该定时执行指令设定其要占用的I/o的标识即为该定时指令的指令类型对应的I/o的标识。再或者,可预先保存各CPU的执行能力参数信息(执行能力参数信息用于表征(PU执行指令的能力),并预设每个定时执行指令所需的CPU执行能力参数范围,当要执行某个定时执行指令时,根据该定时执行指令所需的CPU执行能力参数范围,为该定时执行指令设定的CPU的标识即为:执行能力参数信息落在该CPU执行能力参数范围内的任一 CPU的标识;类似的,可预先保存各I/O的传输能力参数信息(传输能力参数信息用于表征I/o传输数据的能力),并预设每个定时执行指令所需的I/O传输能力参数范围,当要执行某个定时执行指令时,根据该定时执行指令所需的I/O传输能力参数范围,为该定时执行指令设定的I/o的标识即为:传输能力参数信息落在该I/O传输能力参数范围内的任一 I/o的标识。
[0073]在设定所要占用的相对共享CPU时间和内存大小时,可根据该定时执行指令所需的最小相对共享CPU时间和最小内存进行设定。当然,也可根据其他规则设定定时执行指令所要占用的相对共享CPU时间和内存大小,例如,根据每个要执行的定时执行指令所需的最小相对共孚CPU时间的最大值,设定定时执行指令所要占用的相对共孚CPU时间;根据每个要执行的定时执行指令所需的最小内存的最大值,设定定时执行指令所要占用的内存大小。其中,由于实际应用场景中CPU在执行定时执行指令时是在某个指定时间段内执行的,这个指定时间段又被分为若干个时间片,CPU在每个时间片中执行的定时执行指令可能相同,也可能不同,因此,本发明实施例中所述的一个定时执行指令所要占用的相对共享CPU时间是指CPU执行该定时执行指令所占的时间片与该指定时间段内所有时间片的比值,其可以表征CPU要使用多少时间片来执行该定时执行指令。
[0074]依据本发明的一个实施例,在上述图1所示的过程中,步骤SlOl?S103可均由服务器执行,即,服务器为自身要执行的定时执行指令设置资源配置信息,并根据设置的资源配置信息执行定时执行指令;或者,考虑到实际应用场景中往往存在多台服务器,为了便于对多台服务器的集中管理,上述图1所示的步骤SlOl可由管理器执行,步骤S102?S103由服务器执行,即,由管理器为定时执行指令设置资源配置信息,并由管理器将定时执行指令以及设置的资源配置信息下发给服务器,再由服务器根据资源配置信息执行定时执行指令。
[0075]下面以由管理器设置资源配置信息,服务器根据管理器设置的资源配置信息执行定时执行指令为例进行详细说明。
[0076]图2为依据本发明另一个实施例的指令执行方法,可以包括步骤:
[0077]S201:根据当前时刻信息,查找执行时刻信息与当前时刻信息匹配的定时执行指令。
[0078]S202:确定查找到的定时执行指令对应的资源配置信息。
[0079]其中,该资源配置信息是根据指定规则,预先针对定时执行指令设置的。
[0080]S203:采用资源配置信息所规定的资源,执行该定时执行指令。
[0081]在图2所示的步骤S201中,服务器可根据当前时刻信息,查找执行时刻信息与当前时刻信息匹配的定时执行指令。具体的,服务器可按照设定的时间间隔(如I分钟),在定时执行指令所在的脚本中周期性的查找执行时刻信息与当前时刻信息匹配的定时执行指令。其中,该脚本可以是预先配置在服务器中的,也可以是由管理器发送给服务器的。
[0082]例如,在操作系统为Unix或类Unix操作系统的服务器中,可预先将要执行的定时执行指令以及每个定时执行指令对应的执行时刻信息写入在Crontab脚本中,服务器则通过Unix或类Unix操作系统启动用于查找定时执行指令的crond守护进程,crond守护进程每分钟根据当前时刻信息,查找Crontab脚本中执行时刻信息与当前时刻信息匹配的定时执行指令。
[0083]假设当前时刻为10:38,则服务器查找Crontab脚本中执行时刻信息同样为10:38的定时执行指令。
[0084]依据本发明的一个实施例,服务器查找到执行时刻信息与当前时刻信息匹配的定时执行指令后,则可确定查找到的定时执行指令对应的资源配置信息,并将确定的资源配置信息所规定的资源分配给该定时执行指令,采用分配的资源来执行该定时执行指令。
[0085]例如,步骤S201中针对执行时刻信息为10:38的定时执行指令,预设的资源配置信息可以为:CPU标识为2、内存大小为100M。该资源配置信息表示服务器在执行上述执行时刻信息为10:38的定时执行指令时,采用自身CPU标识为2的CPUU00M的内存来执行该定时执行指令。服务器通过步骤S201查找到执行时刻信息为10:38的定时执行指令,并根据该定时执行指令对应的资源配置信息(CPU标识为2、内存大小为100M)为该定时执行指令分配相应的资源,最后采用分配的资源,即自身标识为2的CPU和100M的内存执行该定时执行指令。
[0086]如果该服务器是四核的服务器,总内存为SG,则依据本发明的上述实施例可以看出,服务器执行上述定时执行指令的过程只占用了标识为2的一个CPU和100M的内存,并未占用服务器的全部资源,从而,当服务器在执行上述定时执行指令的过程中还要提供其他服务时,就可利用自身的剩余资源提供其他服务,而不会发生资源抢占的情况,因此可有效提高服务器在执行定时执行指令时提供其他服务的质量。
[0087]考虑到在实际应用中,大规模服务器集群中一般具有数千台甚至上万台服务器,而每台服务器分别设置各自要执行的定时执行指令及其对应的资源配置信息显然效率较低,甚至是不现实的,因此,依据本发明的一个实施例,可通过用于管理多个服务器的管理器,统一向多个服务器发送定时执行指令以及定时执行指令对应的资源配置信息。具体的,管理器可向各服务器发送携带定时执行指令以及定时执行指令对应的资源配置信息的脚本,其中,管理器向每个服务器发送的脚本均相同。这样,管理员只需在管理器中配置一个脚本,并通过管理器将该脚本下发到各个服务器即可。则在上述图2所示的过程中,服务器在通过步骤S201查找执行时刻信息与当前时刻信息匹配的定时执行指令之前,还要接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本。在通过步骤S201查找执行时刻信息与当前时刻信息匹配的定时执行指令时,可在接收到的脚本中,查找执行时刻信息与当前时刻信息匹配的定时时刻指令。在通过步骤S202确定查找到的定时执行指令对应的资源配置信息时,可在接收到的脚本中,确定查找到的定时执行指令对应的资源配置信息,并将确定的资源配置信息所规定的资源分配给该定时执行指令。
[0088]依据本发明的一个实施例,由于各个服务器所要执行的定时执行指令并不完全相同,而由管理器统一向各服务器下发脚本势必会造成各个服务器都要执行相同的定时执行指令的问题,因此,本发明实施例中为了灵活配置每个服务器所要执行的定时执行指令,还可在脚本中针对每个定时执行指令预设相应的指定服务器标识。其中,针对一个定时执行指令预设的指定服务器标识对应的服务器即为:要执行该定时执行指令的服务器。
[0089]相应的,在图2所示的过程中,服务器在通过步骤S203执行查找到的定时执行指令之前,还要确定脚本中携带的、针对查找到的该定时执行指令预设的指定服务器标识,并判断确定的指定服务器标识中是否包含该服务器自身的服务器标识,若是,则执行该定时执行指令,否则,放弃执行该定时执行指令。
[0090]上述指定服务器标识可以是指定服务器的互联网协议(InternetPiOtocoLIP)地址信息、媒体接入控制(MediaAccessControl, MAC)地址信息或其他可以唯一标识一个服务器的信息。
[0091]依据本发明的一个实施例,当指定服务器标识是服务器的IP地址信息时,针对一个定时执行指令,可预设该定时执行指令对应的指定服务器标识为某一个服务器的IP地址信息,如10.121.21.2,也可以预设为IP地址连续的多个服务器的IP地址信息,如10.102.6.18-25,也可以预设为IP地址在某个网段的多个服务器的IP地址信息,如
10.121.215.0。当指定服务器标识是服务器的MAC地址信息时,针对一个定时执行指令预设的指定服务器标识则可以预设为每个要执行该定时执行指令的服务器的MAC地址信息,这里就不再一一赘述。
[0092]类似的,通过管理器统一向各服务器下发脚本的方式也会使每个服务器在执行同一个定时执行指令时所占用的资源相同,因此,依据本发明的一个实施例,为了更加灵活的配置每个服务器执行同一个定时执行指令所占用的资源,在脚本中为定时执行指令预设了指定服务器标识后,还可以针对每个指定服务器标识预设相应的资源配置信息,则在图1所示的过程中,服务器在查找到执行时刻信息与当前时刻信息匹配的定时执行指令后,可先判断该脚本中携带的、针对该定时执行指令预设的指定服务器标识中是否包含该服务器自身的服务器标识,若是,则在该脚本中确定针对该定时执行指令预设的该服务器自身的服务器标识所对应的资源配置信息,并采用确定的资源配置信息所规定的资源执行该定时执行指令,相反的,若确定针对该定时执行指令预设的指定服务器标识中未包含该服务器自身的服务器标识,则放弃执行该定时执行指令。[0093]当然,在脚本中,针对一个定时执行指令,也可以预设一个默认资源配置信息,并针对某些要执行该定时执行指令的特定服务器,为该特定服务器的服务器标识预设对应的资源配置信息,则服务器在要执行该定时执行指令时(即,确定针对该定时执行指令预设的指定服务器标识中包含该服务器自身的服务器标识时),在脚本中查找针对该服务器自身的服务器标识预设的资源配置信息,若查找到,则采用查找到的资源配置信息所规定的资源执行该定时执行指令,若未查找到,则采用针对该定时执行指令预设的默认资源配置信息所规定的资源执行该定时执行指令。
[0094]依据本发明的一个实施例,考虑到在实际应用场景中,如果服务器执行一个定时执行指令的时长过长,也会影响到服务器提供其他服务的质量,因此,本发明实施例中针对一个定时执行指令,还可针对该定时执行指令预设一个对应的设定时长,该设定时长也可以携带在由管理器下发给服务器的脚本中。相应的,服务器在通过如图2所示的步骤S203执行定时执行指令时,则需要确定该定时执行指令对应的设定时长,并监控该定时执行指令的执行时长,当监控的执行时长达到确定的该设定时长时,终止该定时执行指令的执行。也即,一旦执行某个定时执行指令的时间长度达到设定时长,服务器就强制结束该定时执行指令的执行。当然,该设定时长也可由服务器自身设置,无需由管理器下发给服务器。
[0095]依据本发明的一个实施例,为了便于后续查看各定时执行指令的执行情况,服务器还可记录定时执行指令的执行开始时刻和执行结束时刻,并实时的记录定时执行指令在执行过程中所产生的执行结果。具体的,对于执行结束时刻来说,如果一个定时执行指令的执行是被服务器强制结束的,则服务器强制结束执行该定时执行指令的时刻就是该定时执行指令的执行结束时刻。后续的,服务器在执行定时执行指令之后,则可根据该定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成该定时执行指令的执行日志,并存储该执行日志。具体的,可将该执行日志导入到数据库中存储。例如,服务器可调用诸如超文本传输协议(Hyper Text Transport Protocol, HTTP)的应用程序编程接口(ApplicationProgramming Interface, API),将执行日志导入到数据库中。
[0096]另外,当服务器所使用的操作系统是Unix或类Unix操作系统时,管理器可将要执行的定时执行指令以及每个定时执行指令对应的执行时刻信息、资源配置信息、指定服务器标识和设定时长封装为一个cronwrapper.sh脚本,并将该cronwrapper.sh脚本下发给各个服务器,使各个服务器将接收到的cronwrapper.sh脚本配置在各自的Crontab脚本中,这样,当Unix系统启动时,crond守护进程就会周期性的执行Crontab脚本中的cronwrapper.sh脚本,从而按照cronwrapper.sh脚本中的执行时刻信息、资源配置信息等执行cronwrapper.sh脚本中的定时执行指令。
[0097]需要注意的是,依据本发明的一些实施例,采用了将为定时执行指令设置的资源配置信息放在了一个脚本中,也即以脚本的形式提供给服务器等设备的,本领域技术人员应当可以想到,还可以把为定时执行指令设置的资源配置信息放置在一个数据表中、放在一个缓存器中、放在一个动态存储区中等等,只要在需要执行定时执行指令的时候,能够从该数据表、缓存器或动态存储区等中取得该资源配置信息即可。
[0098]图3为依据本发明一个实施例的管理器与多个服务器的组网架构示意图,在图3中,管理器分别与服务器1、服务器2、服务器3这三个服务器相连,这三个服务器又与数据库相连。[0099]基于图3所示的架构,假设这三个服务器的操作系统都是Unix操作系统或类Unix操作系统,则管理员可先在管理器上配置要执行的每个定时执行指令以及每个定时执行指令对应的执行时刻信息、资源配置信息、指定服务器标识和设定时长,再将配置的上述信息封装成一个cronwrapper.sh脚本,管理器则将该cronwrapper.sh脚本分别下发给这三个服务器,这三个服务器则分别将cronwrapper.sh脚本配置在各自的Crontab脚本中。
[0100]图4为依据本发明图3所示的实施例中任一服务器执行定时执行指令的详细方法,包括步骤:
[0101]S401:服务器的Unix系统或类Unix系统在启动时启动crond守护进程,crond守护进程周期性的执行自身Crontab脚本中的cronwrapper.sh脚本,并执行下述步骤S402 ?S410。
[0102]S402:查找cronwrapper.sh脚本中执行时刻信息与当前时刻信息匹配的定时执行指令。
[0103]S403:判断cronwrapper.sh脚本中查找到的定时执行指令对应的指定服务器标识中是否包含服务器自身的服务器标识,若是,执行步骤S404,否则执行步骤S410。
[0104]S404:确定cronwrapper.sh脚本中携带的该定时执行指令对应的资源配置信息和设定时长。
[0105]S405:采用确定的资源配置信息所规定的资源,执行该定时执行指令,并监控该定时执行指令的执行时长。
[0106]S406:判断该定时执行指令是否执行结束,若是,则执行步骤S409,否则执行步骤S407。
[0107]S407:判断监控的执行时长是否达到该定时执行指令对应的设定时长,若是,则执行步骤S408,否则返回步骤S406。
[0108]S408:终止该定时执行指令的执行,执行步骤S409。
[0109]S409:根据该定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成该定时执行指令的执行日志,并将执行日志导入数据库存储。
[0110]S410:放弃执行该定时执行指令。
[0111]依据本发明的一个实施例,在步骤S403中,假设指定服务器标识为服务器的IP地址信息,则基于Unix或类Unix操作系统,本发明实施例提供的一种判断指定服务器标识中是否包含该服务器自身的服务器标识的代码如下:
[0112]ips—Vsbin/ip addr show | awk Vinet / (print $2}'|cut -f 1-d T /* 获取该服务
器自身的所有IP地址*/
for ip in $IP; do
subnet='echo Sip|cut -fl-3 -d V'
hostip='echo $ip|cut -f4 -d /*获取 cronwrapper.sh 脚本中该定时执行
指令对应的指定服务器的IP地址*/if echo $hostip | grep -q thenhostip_min='echo Shostip|cut -fl -d'」'hostip_max='echo $hostip|cut -f2 -dfor((i=$hostip_min;i<=$hostipjnax;i++)); dofor inyip in $ips; do
[0113]`
【权利要求】
1.一种指令执行方法,其包括: 为定时执行指令设置资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时要使用的资源; 当所述定时执行指令的执行时刻信息与当前时刻信息匹配时,将所述资源配置信息中规定的资源分配给所述定时执行指令; 采用分配的资源执行所述定时执行指令。
2.如权利要求1所述的方法,其中,为所述定时执行指令设置资源配置信息进一步包括: 设置所述定时执行指令在执行时所要使用的中央处理器CPU的CPU标识、相对共享CPU时间、内存、磁盘输入/输出接口的标识中的至少一种。
3.如权利要求1或2所述的方法,还包括: 为所述定时执行指令设置对应的设定时长; 采用分配的资源执行所述定时执行指令进一步包括: 在执行所述定时执 行指令时,监控所述定时执行指令的执行时长;并 当监控的所述执行时长达到所述设定时长时,终止所述定时执行指令的执行。
4.如权利要求1所述的方法,还包括: 根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
5.一种指令执行方法,其包括: 根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;确定查找到的所述定时执行指令对应的资源配置信息,其中,所述资源配置信息是根据指定规则,预先针对所述定时执行指令设置的;以及 采用所述资源配置信息所规定的资源,执行所述定时执行指令。
6.如权利要求5所述的方法,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令之前,还包括: 接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本; 查找执行时刻信息与所述当前时刻信息匹配的定时执行指令进一步包括: 在接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令; 确定查找到的所述定时执行指令对应的资源配置信息进一步包括: 在接收到的所述脚本中,确定查找到的所述定时执行指令对应的资源配置信息。
7.如权利要求5所述的方法,其中,执行所述定时执行指令进一步包括: 确定所述定时执行指令对应的设定时长,其中,所述设定时长是预先针对所述定时执行指令设置的;并 监控所述定时执行指令的执行时长;以及 当监控的所述执行时长达到确定的所述设定时长时,终止所述定时执行指令的执行。
8.如权利要求5所述的方法,执行所述定时执行指令之后,还包括: 根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
9.一种指令执行装置,其包括: 查找模块,用于根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令; 确定模块,用于确定所述查找模块查找到的所述定时执行指令对应的资源配置信息,其中,所述资源配置信息是根据指定规则,预先针对所述定时执行指令设置的; 执行模块,用于采用所述资源配置信息所规定的资源,执行所述定时执行指令。
10.一种指令执行系统,其包括: 管理器,用于为定时执行指令设置资源配置信息,向服务器发送定时执行指令以及所述定时执行指令对应的资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时所要使用的资源; 服务器,用于根据当前时刻信息,在管理器发送的定时执行指令中查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;确定查找到的所述定时执行指令对应的资源配置信息;采用所述资源配置信息所`规定的资源,执行查找到的所述定时执行指令。
【文档编号】G06F9/445GK103761128SQ201410012409
【公开日】2014年4月30日 申请日期:2014年1月10日 优先权日:2014年1月10日
【发明者】王哲, 张凯, 孔德亮 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司