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

任务处理方法、装置、设备和计算机存储介质与流程

2022-06-05 08:22:40 来源:中国专利 TAG:


1.本说明书一个或多个实施例涉及计算机应用技术领域,尤其涉及任务处理方法、装置、设备和计算机存储介质。


背景技术:

2.随着运维自动化的推进,很多诸如运维脚本、测试脚本等任务脚本均可由任务调度系统进行调度执行。但这些脚本的执行通常需要一段时间才能结束,在执行期间任务调度系统无法获知任务执行信息,例如任务进度、实时的任务输出等。对于用户而言,长时间等待任务结果而无法获知任务执行信息,显然体验较差。
3.由于任务对自身的执行进度是认知最准确的,因此,可以通过在任务脚本中重写命令来支持对外输出任务执行信息。但诸如shell(计算机壳层)任务这种不支持命令重写的“黑盒”任务来说,目前尚没有很好的方法获取任务执行信息。


技术实现要素:

4.有鉴于此,本说明书一个或多个实施例描述了一种任务处理方法、装置、设备和计算机存储介质,以实现在任务执行过程中获取任务执行信息。
5.根据第一方面,提供了一种任务处理方法,由任务调度设备执行,所述方法包括:
6.将被监测任务下发至任务执行设备;
7.在所述被监测任务的执行过程中,针对所述被监测任务下发监测任务至所述任务执行设备;
8.其中,所述监测任务用于从所述被监测任务的输出重定向文件中获取所述被监测任务的任务执行信息,并将该任务执行信息存储于存储空间以供查询。
9.根据其中一个实施例所提供的方式,所述存储空间包括第一存储空间;所述方法还包括:在创建所述被监测任务时,将所述被监测任务的任务标识提供给任务监测进程,由所述任务监测进程将所述任务标识存储于所述第一存储空间的监测任务列表;
10.所述任务监测进程根据所述监测任务列表,执行所述针对所述被监测任务下发监测任务的步骤。
11.根据其中一个实施例所提供的方式,针对所述被监测任务下发监测任务包括:
12.针对所述被监测任务周期性下发监测任务。
13.根据其中一个实施例所提供的方式,所述任务执行信息包括任务输出信息和/或任务进度信息。
14.根据其中一个实施例所提供的方式,该方法还包括:
15.所述任务调度设备主动或响应于用户端的请求,从所述存储空间查询所述被监测任务的任务执行信息,并将所述任务执行信息发送给所述用户端。
16.根据其中一个实施例所提供的方式,所述存储空间包括第二存储空间和第三存储空间;
17.从所述存储空间查询所述被监测任务的任务执行信息包括:
18.从所述第二存储空间查询所述被监测任务的任务执行信息,如果查询到,则获取查询到的任务执行信息;否则,从所述第三存储空间查询所述被监测任务的任务执行信息;
19.其中所述第二存储空间位于缓存设备,所述第三存储空间位于数据库设备。
20.根据第二方面,还提供了一种任务处理方法,由任务执行设备执行,所述方法包括:
21.获取并执行任务调度设备下发的被监测任务;
22.在所述被监测任务的执行过程中,获取所述任务调度设备针对所述被监测任务下发的监测任务;
23.执行所述监测任务,所述监测任务包括:从所述被监测任务的输出重定向文件中获取所述被监测任务的任务执行信息,并将该任务执行信息存储于存储空间以供查询。
24.根据其中一个实施例所提供的方式,所述被监测任务在执行时,将任务输出信息写入所述输出重定向文件;
25.从所述被监测任务的输出重定向文件中获取所述被监测任务的任务执行信息包括:
26.从所述输出重定向文件中读取任务输出信息;或者,
27.从所述输出重定向文件中读取任务输出信息,并基于所述任务输出信息确定所述被监测任务的任务进度信息。
28.根据其中一个实施例所提供的方式,所述存储空间包括第一存储空间;所述方法还包括:
29.在所述被监测任务执行完成后,将所述被监测任务的任务标识从所述第一存储空间的监测任务列表中删除;其中所述监测任务列表用于所述任务调度设备针对所述被监测任务下发监测任务。
30.根据其中一个实施例所提供的方式,所述存储空间包括第二存储空间和第三存储空间;
31.所述将该任务执行信息存储于存储空间包括:
32.在所述被监测任务的执行过程中,将所述被监测任务的任务执行信息存储于所述第二存储空间;在所述被监测任务执行完成后,将所述被监测任务的任务执行信息存储于所述第三存储空间;
33.其中所述第二存储空间位于缓存设备,所述第三存储空间位于数据库设备。
34.根据第三方面,提供了一种任务处理装置,设置于任务调度设备,包括:
35.第一任务下发单元,被配置为将被监测任务下发至任务执行设备;
36.第二任务下发单元,被配置为在所述被监测任务的执行过程中,针对所述被监测任务下发监测任务至所述任务执行设备;
37.其中,所述监测任务用于从所述被监测任务的输出重定向文件中获取所述被监测任务的任务执行信息,并将该任务执行信息存储于存储空间以供查询。
38.根据第四方面,还提供了一种任务处理装置,设置于任务执行设备,包括:
39.第一任务执行单元,被配置为获取并执行任务调度设备下发的被监测任务;
40.第二任务执行单元,被配置为在所述被监测任务的执行过程中,获取所述任务调
度设备针对所述被监测任务下发的监测任务;
41.执行所述监测任务,所述监测任务包括:从所述被监测任务的输出重定向文件中获取所述被监测任务的任务执行信息,并将该任务执行信息存储于存储空间以供查询。
42.根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面和第二方面中任一项所述的方法的步骤。
43.根据第六方面,提供了一种电子设备,包括:
44.一个或多个处理器;以及
45.与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行上述第一方面和第二方面中任一项所述的方法。
46.根据本技术提供的具体实施例,本技术可以达到以下技术效果:
47.1)本技术通过针对被监测任务下发监测任务,以从被监测任务的输出重定向文件中读取被监测任务的执行信息,并存储于存储空间以供查询,实现了在被监测任务的执行过程中获取任务执行信息。
48.2)本技术采用了“非侵入”(即无需对被监测任务进行命令重写)获取任务执行信息的方式,对被监测任务本身的执行逻辑不会产生影响。
49.3)本技术中,被监测任务和监测任务分离,这种异步监测的方式使得两个任务之间低耦合,进一步降低了监测任务对被监测任务的影响。例如,监测任务异常或瘫痪并不会对被监测任务产生影响。
50.4)在任务执行信息的查询流程中,任务调度设备优先从缓存设备查询任务执行信息,能够在较大程度上减轻对数据库设备的性能影响。
51.5)用户端与任务调度设备建立会话,任务执行信息查询的处理与被监测任务、监测任务异步执行,一方面不会对被监测任务的执行带来任何影响,另一方面,用户端无需与任务执行设备之间建立任何会话,降低了对任务执行设备的性能影响,因此能够适用于高并发场景。
52.当然,实施本技术的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
53.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
54.图1示出了本技术实施例所基于的系统架构图;
55.图2示出了根据一个实施例的任务处理方法的流程图;
56.图3示出了根据另一个实施例的任务处理方法的流程图;
57.图4示出了根据一个实施例的任务处理方法的系统协作过程示意图;
58.图5示出了根据一个实施例的进度查询方法的系统协作过程示意图;
59.图6示出了根据一个实施例的一个任务处理装置的示意性框图;
60.图7示出了根据一个实施例的另一个任务处理装置的示意性框图;
61.图8示出了本技术实施例提供的电子设备的示意性架构图。
具体实施方式
62.下面结合附图,对本说明书提供的方案进行描述。
63.为了方便对本说明书提供的技术方案进行理解,首先对本说明书提供的技术方案所基于的系统架构进行介绍。如图1中所示,该系统主要包括任务调度设备110、任务执行设备120和存储空间130,还可以包括用户端所在的设备140。
64.其中存储空间130可以包括第一存储空间131、第二存储空间132和第三存储空间133。各存储空间具体存储的内容将在后续实施例中详细描述。各存储空间可以相互独立,也可以设置于不同的设备上或采用不同的形式。在后续实施例中,以第一存储空间131和第三存储空间133设置于缓存服务器上为例,第二存储空间132设置为数据库为例。
65.上述任务调度设备110主要用以进行任务的调度,将任务下发至任务执行设备120。任务执行设备120是执行具体任务的设备。上述任务调度设备110和任务执行设备120通常设置于服务器端,因此可以采用服务器、服务器群组、云服务器(又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器中存在的管理难度大,扩展性弱的缺陷)等形式,但本技术并不限于此,也可以设置为除了服务器之外的其他设备类型。
66.用户端所在的设备140可以与任务调度设备110进行交互,实现用户通过用户端从任务调度设备110查询并获取任务执行信息。用户端所在的设备可以是各种类型的用户设备,包括但不限于智能移动终端、智能家居设备、可穿戴式设备、pc(个人计算机)等。其中智能移动设备可以包括诸如手机、平板电脑、笔记本电脑、pda(个人数字助理)、互联网汽车等。智能家居设备可以包括诸如智能电视等。可穿戴式设备可以包括诸如智能手表、智能眼镜、虚拟现实设备、增强现实设备、混合现实设备(即可以支持虚拟现实和增强现实的设备)等等。
67.图2示出根据一个实施例的任务处理方法的流程图。该方法由图1中所示的任务调度设备执行。如图2所示,该方法可以包括以下步骤:
68.步骤201,将被监测任务下发至任务执行设备。
69.步骤202,在被监测任务的执行过程中,针对被监测任务周期性下发监测任务至任务执行设备,其中任务监测任务用于从被监测任务的输出重定向文件中获取被监测任务的执行信息,并将该任务执行信息存储于存储空间以供查询。
70.由该实施例所提供的上述步骤可以看出,通过针对被监测任务下发监测任务,以从被监测任务的输出重定向文件中读取被监测任务的执行信息,并存储于存储空间以供查询。一方面,这种“非侵入”(即无需对被监测任务进行指令重写)获取任务执行信息的方式对被监测任务不会产生影响;另一方面,被监测任务和监测任务分离,这种异步监测的方式使得两个任务之间低耦合,进一步降低了监测任务对被监测任务的影响。例如,监测任务异常不会对被监测任务产生影响。
71.为了实现用户对于任务执行信息的获取,该方法还可以进一步包括:
72.步骤203:任务调度设备主动或响应于用户端的请求,从存储空间查询被监测任务的任务执行信息,并将任务执行信息发送给用户端。
73.下面对任务调度设备执行的上述步骤进行详细描述。首先对上述步骤201即“将被监测任务下发至任务执行设备”进行详细描述。
74.可以理解,任务调度设备是负责任务创建和下发的设备,而任务执行设备是负责执行任务的设备。任务调度设备创建被监测任务后,针对被监测任务会生成任务id(标识),将该被监测任务下发至任务执行设备去执行。
75.其中被监测任务可以是任意需要获取任务执行信息的任务。由于本技术主要为了解决诸如shell任务等“黑盒”类任务,因此,该被监测任务可以是诸如shell任务等“黑盒”类任务。shell任务指的是在类unix(包括linux)系统下的系统维护脚本或从shell(计算机壳层)下调用的程序。shell任务通常不支持命令重写,或者命令重写难度很大,因此属于“黑盒”类任务。
76.任务调度设备在下发被监测任务时,可以将被监测任务的任务id写入任务列表。依据任务列表下发具体的任务。该部分与现有实现方式相同,任务调度设备将任务列表中的任务下发给任务执行设备执行。
77.作为一种可实现的方式,任务调度设备可以运行任务监测进程,该任务监测进程可以是在任务调度设备启动时就启动运行。也可以是由特定事件触发时启动运行,例如任务调度设备启动后创建第一个任务时被触发启动运行,等等。
78.任务调度设备在创建被监测任务后,可以将被监测任务注册于任务监测进程。即将被监测任务的任务id提供给任务监测进程,由任务监测进程将该任务id写入监测任务列表。该监测任务列表可以存储于图1所示架构中涉及的第一存储空间。其中第一存储空间可以是诸如缓存服务器中的存储空间。
79.监测任务列表是本技术实施例中设置的列表,其中的监测任务是针对上面提及的任务列表中的任务而创建并下发的。
80.更进一步地,任务调度设备还可以将被监测任务的基础信息存储于图1所示架构中的第三存储空间。其中被监测任务的基础信息可以包括任务id,还可以包括诸如任务类型、任务发布者、所来源的任务组等等。该第三存储空间用以存储被监测任务执行完毕后最终的任务执行结果(即最终的任务输出),该执行结果可以在数据库中与任务的基础信息进行关联存储,以方便查询。该部分将在后续实施例中具体描述。
81.下面结合实施例对上述步骤202即“在被监测任务的执行过程中,针对被监测任务下发监测任务至任务执行设备”进行详细描述。
82.在本步骤中,由于被监测任务已经注册于任务监测进程,任务监测进程实际上是针对注册的任务来下发监测任务。具体地,任务监测进程针对任务监测列表中的被监测任务来分别下发监测任务。
83.作为其中一种可实现的方式,任务调度服务器可以在接收到针对该被监测任务的查询请求后,针对该被监测任务下发监测任务。例如,用户需要针对某一个任务查询任务执行信息,则可以通过用户端向任务调度服务器发送查询请求。任务调度服务器中的任务监测进程可以查询请求的任务id是否在任务监测列表中,如果在,则针对该任务id对应的被监测任务下发监测任务。如果不在,则可能该任务已经执行完毕,可以从存储空间中直接查询该任务id对应的任务执行信息。
84.作为另一种可实现的方式,任务调度服务器可以针对被监测任务定期下发监测任
务,例如每隔2秒下发一次监测任务。
85.由于被监测任务执行完毕后会对被监测任务进行注销,即将该被监测任务从监测任务列表中删除(关于注销的处理将在后续任务执行设备执行的实施例中详述),因此,任务监测进程仅需要按照任务监测列表来下发监测任务即可。如果监测任务列表中不包含某个被监测任务,则说明该被监测任务已经执行完毕,无需再针对该被监测任务下发监测任务。
86.图3示出根据另一个实施例的任务处理方法的流程图。该方法由图1中所示的任务执行设备执行。如图3所示,该方法可以包括以下步骤:
87.步骤301:获取并执行任务调度设备下发的被监测任务。
88.步骤302:在被监测任务的执行过程中,获取任务调度设备针对被监测任务下发的监测任务。
89.步骤303:执行监测任务,该监测任务包括从被监测任务的输出重定向文件中获取被监测任务的任务执行信息,并将该任务执行信息存储于存储空间以供查询。
90.对于任务执行设备而言,在获取到的任务调度设备下发的各类任务后,按照任务内容执行即可。下面重点对上述步骤303进行详细描述。
91.对于诸如shell任务等“黑盒类”任务而言,虽然不支持命令重写,但支持i(输入)/o(输出)重定向机制。在本实施例中则利用了输出重定向机制,即在保留被监测任务原本的输出的同时,将输出重定向至一个指定的文件,该文件称为输出重定向文件。
92.以shell任务为例,任务调度设备可以对shell任务进行输出重定向,例如针对shell任务额外增加一个重定向的处理“|tee uuid.txt”。其中“tee”命令可以在不影响shell任务原本输出的前提下,将shell任务原本的输出复制到以被监测任务的uuid(universally unique identifier,通用唯一识别码)命名的文件中。该文件通常是一个临时文件,可以具备老化时间,或者在被监测任务执行完毕后删除。
93.其中,上述shell任务的输出可以包括stdout(标准输出)和stderr(标准错误输出)。
94.需要说明的是,上述shell任务的输出重定向机制不会对shell任务的执行产生任何影响,也不需要对shell任务进行命令重写,仅需要多执行一个重定向命令即可。
95.监测任务的任务参数包括被监测任务的任务标识(例如uuid),监测任务在执行时,从上述的被监测任务的输出重定向文件中获取文件执行信息。
96.作为其中一种实现方式,上述文件执行信息可以包括任务输出信息,即被监测任务实时输出的信息。这种实现方式中,监测任务从输出重定向文件中读取最新的任务输出信息即可,然后将任务输出信息写入存储空间。
97.作为另一种实现方式,上述文件执行信息可以包括任务进度信息。这种实现方式中,监测任务从被监测任务的重定向文件中读取任务输出信息后,可以基于任务输出信息进一步分析得到被监测任务的任务进度信息,然后将任务进度信息写入存储空间。
98.通常对于一个具体的被监测任务而言,在不同的任务执行阶段输出的信息是不同的且具有一定的特征,该特征通常可以通过字符串来体现。例如,当被监测任务输出字符串1时,说明该被监测任务执行到20%;当被监测任务输出字符串2和3时,说明被监测任务执行到50%;等等。通过字符串特征的匹配可以分析得到被监测任务的进度信息。除了字符串
特征匹配的方式之外,也可以采用其他方式来分析得到任务进度信息,在此不做一一穷举。
99.作为再一种实现方式,上述文件执行信息可以包括任务输出信息和任务进度信息。即监测任务从被监测任务的重定向文件中读取任务输出信息后,可以基于任务输出信息进一步分析得到被监测任务的任务进度信息,然后将任务输出信息和任务进度信息都写入存储空间。
100.由于监测任务是任务调度服务器在被监测任务执行过程中下发的,因此,作为其中一种实现方式,监测任务可以将获取的任务执行信息存储于图1所示架构中的第二存储空间,该第二存储空间可以位于缓存服务器中。这样,监测任务的周期性执行就使得第二存储空间中存储有每隔预设时长(例如2秒)的任务执行信息。其中,第二存储空间中可以将监测任务获取的任务执行信息都进行存储,并以写入时间进行标识。也可以仅存储最新获取的任务执行信息。
101.另外,对于第二存储空间中存储的任务执行信息,可以针对其设置老化时间,例如1个小时。该老化时间至少要大于被监测任务的执行时长,设置的具体时长可以依据实验值或经验值等来统一设置。当达到老化时间时,将对应的任务执行信息从第二存储空间删除。
102.在被监测任务执行完成后,任务执行设备会将被监测任务的执行结果即最终输出存储于图1所示架构中的第三存储空间。该第三存储空间可以采用数据库的形式,将被监测任务的执行结果与任务的基础信息进行关联存储,从而方便查询。此时的任务进度实际上就是全部完成即100%。
103.由于被监测任务最重的执行结果会被写入第三存储空间,并且监测任务与被监测任务是采用异步方式执行的,因此,即便监测任务发生异常,也不会对被监测任务产生影响,并且在被监测任务执行完毕后,也能够获取被监测任务的输出结果。
104.另外,在被监测任务执行完成后,任务执行设备会对被监测任务进行注销。具体地,可以将被监测任务的任务标识从第一存储空间的监测任务列表中删除。这样,任务调度设备就不会再针对该被监测任务下发监测任务。除此之外,也可以采用其他注销方式,例如任务执行设备将被监测任务执行完成的信息发送给任务调度设备,由任务调度设备中的任务监测进程将被监测任务的任务标识从第一存储空间的监测任务列表中删除。但这种方式需要额外与任务调度设备进行交互,因此优选前一种方式。
105.若任务执行设备按照上述实施例中的方式将被监测任务执行过程中获取的任务执行信息存储于第二存储空间,将被监测任务执行完成后获取的任务结果存储于第三存储空间。那么在图2所示流程中的步骤203在具体实现时,任务调度设备在查询任务执行信息时,就可以首先从第二存储空间查询被监测任务的任务执行信息,如果查询到,则获取查询的任务执行信息,并发送给用户端。如果没有查询到,则从第三存储空间查询被监测任务的任务执行信息,并发送给用户端。这种查询方式是优选的查询方式,因为在大部分场景下,用户会在任务执行过程中关注任务执行信息,例如希望知道任务执行进度,或者希望知道任务实时的输出。
106.为了方便对上述任务调度设备和任务执行设备之间协作的理解,下面以shell任务作为被监测任务,任务调度设备和任务执行设备均采用服务器形式,第一存储空间和第二存储空间设置于缓存服务器,第三存储空间采用数据库形式为例,对整个系统的协作过程进行描述。如图4中所示,该过程可以包括以下步骤:
107.步骤401:任务调度服务器创建shell任务,针对该shell任务生成uuid,并将该shell任务注册到任务监测进程。
108.步骤402:任务调度服务器将shell任务下发至任务执行服务器。
109.任务调度服务器创建shell任务之后,会将shell任务的uuid存入缓存服务器的任务列表。根据任务列表下发shell任务至任务执行服务器。该部分与现有技术一致。
110.步骤403:任务执行服务器执行shell任务,其中在执行shell任务时,shell任务的stdout(标准输出)和stderr(标准错误输出)被重定向至输出重定向文件中。
111.该输出重定向文件可以是一个以uuid标识的临时文件。
112.步骤404:任务调度服务器的任务监测进程将shell任务的uuid存入缓存服务器中的监测任务列表。
113.步骤405:任务调度服务器将shell任务的任务基础信息存储于数据库。
114.需要说明的是,除了上述执行顺序之外,任务调度服务器在步骤402、步骤404和步骤405中的处理还可以同时执行,或采用其他顺序先后执行,本技术对此并不加以限制。
115.步骤406:任务调度服务器的任务监测进程基于缓存服务器中的监测任务列表,周期性(例如每间隔2秒)下发监测任务(任务参数包含shell任务的uuid)至任务执行服务器。
116.步骤407:任务执行服务器执行监测任务,从上述重定向文件(即以shell任务的uuid标识的临时文件)中读取shell任务的任务输出信息,基于任务输出信息确定shell任务的任务进度信息。
117.由于重定向文件中存储的是shell任务的实时输出,因此,从任务输出信息就可以分析得到任务进度信息。例如,采用字符串特征匹配的方式,即预先确定不同任务进度对应的字符串特征,根据任务输出信息的字符串特征确定对应的任务进度信息。
118.步骤408:任务执行服务器将shell任务的任务进度信息存储于缓存服务器。
119.在本实施例中是以任务进度信息为例进行的描述,除了任务进度信息之外,也可以将任务输出信息存储于缓存服务器。其中,缓存服务器仅存储最新的任务进度信息,即每次都采用新的任务进度信息替换已存储的任务进度信息。
120.步骤409:shell任务执行完成后,任务执行服务器触发shell任务的注销,将shell任务的uuid从缓存服务器中的监测任务列表中删除。
121.步骤410:shell任务执行完成后,任务执行服务器将shell任务的执行结果存储于数据库。
122.shell任务的执行结果实际上就是最终的输出结果,意味着此时的任务执行进度为全部完成即100%。
123.若任务调度服务器进行任务进度查询时,执行的流程可以如图5中所示,包括以下步骤:
124.步骤501:用户端通过与任务调度服务器之间建立的会话连接,向任务调度服务器发送任务进度查询请求,该任务调度查询请求中携带有请求查询的shell任务的信息。
125.步骤502:任务调度服务器从缓存服务器查询该shell任务的任务进度信息,如果查询到,则执行步骤504;如果没有查询到,则执行步骤503。
126.步骤503:任务调度服务器从数据库查询该shell任务的任务进度信息,如果查询到,则执行步骤504;否则,可以向用户端返回未查询到任务进度的信息。
127.步骤504:任务调度服务器向用户端返回查询到的任务进度信息。
128.上述任务进度查询流程中,任务调度服务器优先从缓存服务器查询任务进度信息,能够在较大程度上减轻对数据库的性能影响。
129.另外,从图5所示的任务进度查询流程可以看出,用户通过用户端与任务调度服务器建立会话,查询的处理与被监测任务、监测任务异步执行,一方面不会对被监测任务的执行带来任何影响,另一方面,用户端无需与任务执行服务器之间建立任何会话,降低了对任务执行服务器的性能影响,因此适用于高并发场景。
130.在此需要说明的是,上述图4和图5所示实施例中,第一存储空间、第二存储空间设置于缓存服务器,第三存储空间设置为数据库,仅仅为本技术实施例提供的优选的实施方式,并不排除可以采用其他形式,或者设置为一个存储空间。
131.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
132.根据另一方面的实施例,提供了一种任务处理装置。图6示出根据一个实施例的该任务处理装置的示意性框图,该装置设置于图1所示架构中的任务调度设备。如图6所示,该装置600包括:第一任务下发单元601和第二任务下发单元602,还可以进一步包括任务创建单元603和用户端交互单元604。其中各组成单元的主要功能如下:
133.第一任务下发单元601,被配置为将被监测任务下发至任务执行设备。
134.第一任务下发单元601在下发被监测任务时,可以将被监测任务的任务id写入任务列表。依据任务列表下发具体的任务。该部分与现有实现方式相同,第一任务下发单元601将任务列表中的任务下发任务执行设备执行。
135.第二任务下发单元602,被配置为在被监测任务的执行过程中,针对被监测任务下发监测任务至任务执行设备。
136.其中,监测任务用于从被监测任务的输出重定向文件中获取被监测任务的任务执行信息,并将该任务执行信息存储于存储空间以供查询。
137.作为其中一种可实现的方式,上述存储空间可以包括第一存储空间。该第一存储空间可以设置于缓存设备,例如缓存服务器。
138.任务创建单元603,被配置为在创建被监测任务时,将被监测任务的任务标识提供给任务监测进程。即上述第二任务下发单元602以任务监测进程的形式实现,由任务监测进程将任务标识存储于第一存储空间的监测任务列表,并根据监测任务列表,执行针对被监测任务下发监测任务的操作。
139.任务调度设备可以运行任务监测进程,该任务监测进程可以是在任务调度设备启动时就启动运行。也可以是由特定事件触发时启动运行,例如任务调度设备启动后创建第一个任务时被触发启动运行,等等。
140.更进一步地,任务创建单元603还可以将被监测任务的基础信息存储于第三存储空间。其中被监测任务的基础信息可以包括任务id,还可以包括诸如任务类型、任务发布者、所来源的任务组等等。该第三存储空间用以存储被监测任务执行完毕后最终的任务执
行结果(即最终的任务输出),该执行结果可以在数据库中与任务的基础信息进行关联存储,以方便查询。
141.作为一种优选的实施方式,上述第二任务下发单元602可以针对被监测任务周期性下发监测任务。
142.用户端交互单元604,被配置为主动或响应于用户端的请求,从存储空间查询被监测任务的任务执行信息,并将任务执行信息发送给用户端。其中,任务执行信息可以包括任务输出信息和/或任务进度信息。
143.作为其中一种优选的实施方式,存储空间可以包括第二存储空间和第三存储空间。
144.用户端交互单元604可以具体被配置为:从第二存储空间查询被监测任务的任务执行信息,如果查询到,则获取查询到的任务执行信息;否则,从第三存储空间查询被监测任务的任务执行信息;其中第二存储空间位于缓存设备,第三存储空间位于数据库设备。
145.根据另一方面的实施例,还提供了一种任务处理装置。图7示出根据一个实施例的该任务处理装置的示意性框图,该装置设置于图1所示架构中的任务执行设备。如图7所示,该装置700包括:第一任务执行单元701和第二任务执行单元702,还可以进一步包括任务注销单元703。其中各组成单元的主要功能如下:
146.第一任务执行单元701,被配置为获取并执行任务调度设备下发的被监测任务。
147.第二任务执行单元702,被配置为在被监测任务的执行过程中,获取任务调度设备针对被监测任务下发的监测任务;执行监测任务,监测任务包括:从被监测任务的输出重定向文件中获取被监测任务的任务执行信息,并将该任务执行信息存储于存储空间以供查询。
148.在本实施例中则利用了输出重定向机制,即在保留被监测任务原本的输出的同时,将输出重定向至一个指定的文件,该文件称为输出重定向文件。被监测任务在执行时,将任务输出信息写入输出重定向文件。
149.第二任务执行单元702在执行监测任务时,可以从输出重定向文件中读取任务输出信息;或者,从输出重定向文件中读取任务输出信息,并基于任务输出信息确定被监测任务的任务进度信息。
150.作为其中一种可实现的方式,存储空间包括第一存储空间。任务注销单元703,被配置为在被监测任务执行完成后,将被监测任务的任务标识从第一存储空间的监测任务列表中删除;其中监测任务列表用于任务调度设备针对被监测任务下发监测任务。
151.作为其中一种优选的实施方式,上述监测任务是任务调度设备周期性下发的,相应地,第二任务执行单元702实际上也是在被监测任务执行过程中周期性执行对应的监测任务。
152.作为其中一种优选的实施方式,存储空间包括第二存储空间和第三存储空间。
153.第二任务执行单元702在将该任务执行信息存储于存储空间时,具体被配置为:
154.在被监测任务的执行过程中,将被监测任务的任务执行信息存储于第二存储空间;在被监测任务执行完成后,将被监测任务的任务执行信息存储于第三存储空间;其中第二存储空间位于缓存设备,第三存储空间位于数据库设备。
155.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部
分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
156.需要说明的是,本技术实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
157.另外,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中任一项所述的方法的步骤。
158.以及一种电子设备,包括:
159.一个或多个处理器;以及
160.与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行前述方法实施例中任一项所述的方法的步骤。
161.其中,图8示例性的展示出了电子设备的架构,具体可以包括处理器810,视频显示适配器811,磁盘驱动器812,输入/输出接口813,网络接口814,以及存储器820。上述处理器810、视频显示适配器811、磁盘驱动器812、输入/输出接口813、网络接口814,与存储器820之间可以通过通信总线830进行通信连接。
162.其中,处理器810可以采用通用的cpu、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术所提供的技术方案。
163.存储器820可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器820可以存储用于控制电子设备800运行的操作系统821,用于控制电子设备800的低级别操作的基本输入输出系统(bios)822。另外,还可以存储网页浏览器823,数据存储管理系统824,以及任务处理装置825等等。上述任务处理装置825就可以是本技术实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本技术所提供的技术方案时,相关的程序代码保存在存储器820中,并由处理器810来调用执行。
164.输入/输出接口813用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
165.网络接口814用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
166.总线830包括一通路,在设备的各个组件(例如处理器810、视频显示适配器811、磁
盘驱动器812、输入/输出接口813、网络接口814,与存储器820)之间传输信息。
167.需要说明的是,尽管上述设备仅示出了处理器810、视频显示适配器811、磁盘驱动器812、输入/输出接口813、网络接口814,存储器820,总线830等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本技术方案所必需的组件,而不必包含图中所示的全部组件。
168.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
169.以上对本技术所提供的任务处理方法进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本技术的限制。
170.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献