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

一种任务查询的方法、装置及存储介质与流程

2022-06-05 21:38:28 来源:中国专利 TAG:


1.本发明涉及计算机领域,尤其涉及自动化任务调度中一种任务查询的方法、装置及存储介质。


背景技术:

2.目前,异步任务调度系统广泛存在于前端以及后台系统中。异步任务调度系统通常用于两个系统之间的交互,比如任务发起系统向任务执行系统发起一个任务,并从任务执行系统获得一个任务标识。任务发起系统在接收到任务标识后,周期地向任务执行系统发送查询任务是否结束的查询请求。
3.采用简单的周期或递增任务查询方式使任务发起系统不能及时发现任务结束,需要经过一定的间隔时间后才能发现任务结束,导致任务发起系统处的耗时增加。
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.图1为相关技术中一种任务查询的方法流程图;
33.图2为相关技术中另一种任务查询的方法流程图;
34.图3为本技术实施例提供的一种应用场景示意图;
35.图4为本技术实施例提供的一种任务查询的方法流程图;
36.图5为本技术实施例提供的一种任务查询的整体方法流程图;
37.图6为本技术实施例提供的一种任务查询的装置结构图;
38.图7为本技术实施例提供的一种计算设备。
具体实施方式
39.为了使本技术的目的、技术方案及有益效果更加清楚明白,以下将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,并不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
40.以下对本技术实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
41.任务执行系统,是用于执行任务的服务器,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等。
42.任务发起系统,是用于发起任务的客户端或服务器。
43.云技术(cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
44.云技术(cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
45.下面对本技术实施例的设计思想进行简要介绍。
46.本技术是针对任务查询的,应用于异步任务调度系统中,异步任务调度系统广泛存在于客户端与服务器之间或服务器与服务器之间进行任务调度与数据交互。在任务查询的相关技术中,通常将客户端和服务器分别作为一个单独的系统,以客户端和服务器之间
进行任务调度与数据交互进行举例,客户端作为任务发起系统,服务器作为任务执行系统。
47.任务发起系统向任务执行系统发起任务,由任务执行系统执行任务发起系统发起的任务。任务执行系统在接收到任务发起系统发起的任务后,在结束任务之前向任务发起系统返回包括任务标识(task id)的响应消息,同时在任务执行系统中执行该任务;
48.此时任务发起系统会接收到任务执行系统发送的任务标识,并在接收到该任务标识后周期地向任务执行系统查询该任务是否结束。图1示例性的提供了相关技术中一种任务查询的方法流程图。
49.图1中周期地向任务执行系统发送任务查询请求,比如任务发起系统在接收到任务标识后的2秒向任务执行系统发送查询请求,并接收到任务执行系统返回的任务是否结束的查询结果;若接收到任务未结束的查询结果,则在接收到任务标识后的4秒再次向任务执行系统发送查询请求,并接收到任务执行系统返回的任务是否结束的查询结果;若接收到任务未结束的查询结果,则在接收到任务标识后的6秒再次向任务执行系统发送查询请求,以此类推,直至接收到任务结束的查询结果。
50.采用周期地向任务执行系统发送任务查询请求的方式,存在任务执行系统早已结束任务,但是由于未接收到查询请求,无法返回查询结果,导致任务发起系统需要经过一定的时间间隔才能发现任务结束,即任务发起系统不能及时确定任务已结束,造成任务发起系统处的耗时增加。比如任务执行系统在发送任务标识的4~5秒后任务结束,但是在第6秒的时候接收到任务发起系统的查询请求,此时任务发起系统需要经过1~2秒的时间间隔才能发现任务结束。
51.相关技术中,在进行任务查询的时候也考虑使用递增时间间隔的方式进行任务查询,比如第一次查询时间在接收到任务标识后的2秒,第二次查询时间在接收到任务标识后的4秒,第三次查询时间在接收到任务标识后8秒,以递增时间间隔的方式依次确定查询时间。采用递增时间间隔的任务查询方式存在与周期地查询的同样问题,即任务发起系统不能及时发现任务结束,造成任务发起系统处的耗时增加。
52.因此,在相关技术中提供了另一种实现方式,即任务执行系统在确定任务结束时主动回调任务发起系统的回调地址,向任务发起系统发送任务结束的通知,其中回调的方式可以是回调接口、长连接、消息队列推送事件。图2示例性的提供了相关技术中另一种任务查询的方法流程图。
53.任务执行系统采用回调方式可以使任务发起系统及时发现任务结束,解决耗时增加的问题,但是采用回调方式有引入了下述问题:
54.1、实现成本较高。在任务查询方案中任务发起系统、任务执行系统的交互方式是任务发起系统向任务执行系统发送请求消息,任务执行系统根据请求消息回复任务发起系统。而回调的方式需要任务执行系统感知任务发起系统的地址,若任务发起系统发生重启或其他异常情况,处理异常会变得复杂。同时任务发起系统在外网,任务执行系统在局域网时,无法使用回调的方式;
55.2、任务发起系统与任务执行系统的耦合度高。当增加或替换一个任务发起模块或执行模块时,增加的模块也要提供对应格式的回调接口、实现长连接、或者引入相同的消息队列组件;
56.3、多个发起者的情况下,多个回调地址、多个长连接、多个消息队列,会增加运维
管理成本和资源成本;
57.4、部分模块目标功能纯粹,不适合做回调。例如linux的shell命令,dd、scp等,当担心命令请求时间过长,就会使得命令后台执行,并周期地检查结果;mysql提供在线的buffer_pool调整能力,官方也提供了使用sql查询调整进度的接口,而让mysql内核主动回调管控系统,或通知事件给客户端的方案,目前都是没有的。
58.有鉴于此,本技术提供一种任务查询的方法,为了避免采用回调方式进行任务查询时带来的弊端,本技术实施例中进行任务查询时,依旧采用向任务执行系统发送查询请求,获取相应查询结果的轮询查询方式,保持任务查询的简单、通用、耦合低的特点。但由于相关技术中周期或递增的查询方式,任务发起系统不能及时发现任务是否执行结束,导致任务耗时延迟,因此本技术中不再采用周期地或递增的查询方式,而是先根据同类型的其他任务对应的历史任务执行信息,预测目标任务执行结束的时间,即预测目标任务的总执行时长,并在目标任务执行结束的时间前后,确定至少一个与目标任务执行结束时间相邻的时间点作为目标查询时间,并在目标查询时间到达时发送查询请求,此时发送查询请求的时间更接近目标任务执行结束的时间,可以减少任务发起系统发送查询请求的次数,以及任务发起系统及时确定目标任务执行结束,减少因任务查询带来的任务耗时延迟。
59.在本技术实施例中,由于是根据同类型的其他任务对应的历史任务执行信息,预测的目标任务执行结束的时间。因此在初始状态时,需要以周期轮询的方式或递增轮询的方式来查询任务是否执行结束,以确定目标任务执行结束的时间,并存储该任务的执行信息以及该任务的任务类型,多次累积可以确定该任务类型的任务在执行过程中任务执行结束的总时长是否固定。
60.对于某任务类型的任务在执行过程中任务执行时长固定的情况,可以用正态分布去拟合任务执行时长,即任务执行时长符合正态分布,可以根据同类型的历史任务总执行时长,确定历史任务执行时的平均执行时长、执行时长的平方和等。进一步根据正态分布情况可以确定出该任务类型对应的任务平均执行时长,此时将任务平均执行时长作为预测的目标任务执行时长,此时在平均执行时长前后可以确定至少一个目标查询时间,即根据平均执行时长确定至少一个目标查询时间;
61.对于某任务类型的任务在执行过程中任务执行时长不固定的情况,可以确定出执行该任务类型对应的任务时的最小执行时长,此时可以将最小执行时长作为预测的目标任务执行时长,之后根据目标任务执行时长确定查询时间时,可以将距离接收到任务标识的时长为最小执行时长时对应的时间作为第一次目标查询时间,并在第一次查询后使用周期轮询或递增轮询的方式进行查询,避免在初期频繁查询浪费资源,即根据最小执行时长确定至少一个目标查询时间;
62.其中,任务总执行时长、平均执行时长、执行时长的平方和以及最小执行时长等为历史任务执行信息。因此本技术中,根据历史任务执行信息,确定至少一个目标查询时间。
63.在一种可能的实现方式中,在接收到任务执行系统返回的任务标识后,在历史记录中查找与任务标识对应的目标任务同类型的其他任务对应的历史任务执行信息,并根据历史任务执行信息,确定向任务执行系统发送查询请求组的目标查询时间集合,目标查询时间结合包括至少一个目标查询时间,每到达目标查询时间集合中的一个目标查询时间,向任务执行系统发送任务查询请求,以查询目标任务是否结束;在接收到任务执行系统返
回的目标任务结束通知时,确定目标任务结束。
64.通过历史任务执行信息中的历史任务总执行时长、历史任务最小执行时长、平均执行时长、平方和等信息,预测目标任务总执行时长,以根据预测目标任务总执行时长确定至少一个目标查询时间,在目标查询时间进行查询时,目标查询时间更接近目标任务执行结束的时间,可更加精准地进行轮询,减少因周期或递增轮询带来的任务耗时延迟,且保持了轮询的简单、通用、耦合低的特点。
65.在介绍完本技术实施例的设计思想之后,下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
66.图3示例性的提供的了本技术实施例的一种应用场景示意图,该应用场景中包括终端设备10和服务器11。
67.其中,终端设备10中安装运行有各种应用程序,终端设备10为用户使用的电子设备,该电子设备可以是个人计算机、手机、平板电脑、笔记本、电子书阅读器等具有一定计算能力并且运行有即时通信类软件及网站或者社交类软件及网站的计算机设备;
68.服务器11可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等。
69.在一种可选的实施方式中,终端设备10与服务器11之间可以通过通信网络进行通信。通信网络是有线网络或无线网络。终端设备10通过无线接入点12与服务器11间接地连接,或终端设备10通过因特网与服务器11直接地连接,本技术在此不做限制。
70.在一种可能的实现方式中,终端设备10向服务器11发起任务,服务器11在接收到任务后向终端设备10返回任务标识,终端设备10在接收到任务标识后,向服务器11发送带有任务标识的任务查询请求,以使服务器11根据任务标识查找与该任务标识对应的任务是否结束。
71.在一种可能的实现方式中,本技术采用云计算方式为终端设备10提供服务。云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,其中每个计算机可以作为一个服务器,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
72.作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为基础设施即服务(infrastructure as a service,iaas)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
73.按照逻辑功能划分,在基础设施即服务(infrastructure as a service,iaas)层上可以部署平台即服务(platform as a service,paas)层,paas层之上再部署软件即服务(software as a service,saas)层,也可以直接将saas部署在iaas上。paas为软件运行的
平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。
74.其中,云计算是网格计算(grid computing)、分布式计算(distributed computing)、并行计算(parallel computing)、效用计算(utility computing)、网络存储(network storage technologies)、虚拟化(virtualization)、负载均衡(load balance)等传统计算机和网络技术发展融合的产物。
75.在一种可能的实现方式中,本技术还适用于服务器与服务器之间进行交互的场景,通终端设备与服务器进行交互的场景类似,在此不再赘述。
76.基于图3的应用场景,下面对本技术实施例中涉及的任务查询的方法进行示例说明。
77.请参照图4,图4示例性的提供了本技术实施例中一种任务查询的方法,应用于异步任务调度系统中,该方法包括如下步骤:
78.步骤s400,在接收到任务执行系统返回的任务标识后,在历史记录中查找与任务标识对应的目标任务同类型的其他任务对应的历史任务执行信息。
79.其中,历史任务执行信息包括下列之一或组合:至少一个历史任务执行总时长、历史任务最小执行时长、历史任务平均执行时长、平方和、方差以及任务数。
80.在本技术实施例中,任务发起系统和任务执行系统之间进行交互,任务发起系统可以向任务执行系统发起任务请求,任务执行系统在接收到任务发起系统发送的任务请求后,根据该任务请求确定对应的任务,并根据任务生成任务标识,将任务标识返回给任务发起系统。以使任务发起系统在接收到任务执行系统返回的任务标识后,在历史记录中查找与任务标识对应的目标任务同类型的其他任务对应的历史任务执行信息,以根据历史任务执行信息确定发送任务查询请求的时间。
81.下面以任务发起系统为客户端,任务执行系统为服务器进行举例说明:
82.客户端在检测到用户的输入操作时,确定需要执行该输入操作对应的任务,根据该任务生成统一资源定位符(uniform resource locator,url),并与服务器建立连接,这样,客户端便可以通过该连接向服务器发送形式为url的任务请求,用于请求服务器执行该任务;
83.相应的,服务器接收到客户端发送的任务请求后,根据任务请求中的url确定对应的任务,任务可以包括应用程序代码、任务名称等。进一步,服务器根据任务生成任务标识,并将该任务标识作为任务包含的属性,用于唯一标识该任务;
84.服务器将该任务标识返回给客户端,客户端在接收服务器返回的任务标识后,客户端可以向服务器发送任务查询请求,以查询任务是否结束。
85.在本技术实施例中,确定要向任务执行系统发送任务查询请求时,发送任务查询请求的目标查询时间可以根据历史记录中记录的与任务执行系统返回的任务标识对应的目标任务同类型的其他任务对应的历史任务执行信息确定。
86.因此,在接收到任务执行系统返回的任务标识后,应先判断历史记录中是否记录有与任务标识对应的目标任务同类型的其他任务及对应的历史任务执行信息,若记录有与任务标识对应的目标任务同类型的其他任务及对应的历史任务执行信息,则继续执行步骤s401。
87.在一种可能的实现方式中,历史记录中未记录有与任务标识对应的目标任务同类型的其他任务及对应的历史任务执行信息,此时周期地向任务执行系统发送任务查询请求;
88.比如,以2秒为任务查询周期,此时从接收到任务标识时间起2秒时,向任务执行系统发送任务查询请求;在确定目标任务未结束后,从接收到任务标识时间起4秒时,向任务执行系统发送任务查询请求;在确定目标任务未结束后,从接收到任务标识时间起6秒时,向任务执行系统发送任务查询请求;以此类推,直至接收到目标任务结束通知后,确定目标任务结束。
89.在一种可能的实现方式中,历史记录中未记录有与任务标识对应的目标任务同类型的其他任务及对应的历史任务执行信息时,还可以采用递增时间间隔的方式发送向任务执行系统发送任务查询请求;
90.比如,相邻两次任务查询请求的时间间隔对应的递增时间为2秒,此时从接收到任务标识时间起2秒时,向任务执行系统发送任务查询请求;在确定目标任务未结束后,从接收到任务标识时间起4秒时,向任务执行系统发送任务查询请求;在确定目标任务未结束后,从接收到任务标识时间起8秒时,向任务执行系统发送任务查询请求,以此类推,直至接收到目标任务结束通知后,确定目标任务结束。
91.在确定目标任务结束后,将接收到目标任务结束通知之前,最后一个任务查询时间与接收到任务标识时间的间隔时长作为目标任务的历史任务总执行时长;并根据该历史任务总执行时长,确定历史任务执行信息,最终将历史任务执行信息存储在历史记录中,以根据历史记录中记录的该历史任务执行信息,确定目标任务对应的发送任务查询请求的时间。
92.比如,从接收到任务时间起6秒后,向任务执行系统发送任务查询请求,并接收到任务执行系统返回的目标任务结束通知后,确定目标任务的总执行时长为6秒,此时可以将历史任务总执行时长为6秒记录在历史记录中的历史执行信息中,此时历史记录中包括目标任务对应的历史任务总执行时长,以便再次查询同类型目标任务是否结束时,根据该历史任务执行时长确定发送任务查询请求的时间。
93.在本技术实施例中,根据历史任务执行时长可以确定出历史任务平均执行时长,平方和、历史任务最小执行时长,及任务数等历史任务执行信息。
94.在一个实施例中,为了节省空间,针对任务执行时长遵循正态分布的任务,在历史记录中可以不记录所有历史任务执行时长,只记录历史任务平均执行时长、平方和以及任务数。根据平均执行时长、平方和以及任务数可以确定出方差;根据方差和平均值可以确定正态分布形状和位置,进一步可以确定目标查询时间集合中的至少一个目标查询时间。其中,在历史记录中存储任务数是为了新任务结束后,根据任务数再次更新平均数和方差。
95.在一个实施例中,针对任务执行时长不遵循正态分布的任务,在历史记录中可以仅存储最小历史任务执行时间。
96.在本技术实施例中,确定任务执行时长是否符合正态分布,是根据同类型的多个任务对应的任务总执行时长是否固定确定的。若同类型的多个任务的任务总时长固定,则符合正态分布,若同类型的多个任务的任务总执行时长不固定,则不符合正态分布。比如与用户相关的数据,备份用户的每天写入数据,某些用户每天产生新数据较少或无,此时任务
总执行时长较短,而某些用户每天产生新数据较多,此时任务总执行时间较长,任务执行时间不固定,因此该任务不符合正态分布;而与用户无的数据,比如用户触发转账任务,该任务的总执行时长与用户需要转账的金额无关,不论转账金额为多少总执行时长只存在轻微差异,此时该任务符合正态分布。
97.步骤s401,根据历史任务执行信息,确定向任务执行系统发送任务查询请求的目标查询时间集合,目标查询时间集合包括至少一个目标查询时间。
98.不同类型的任务对应的执行时长不同,相同类型的任务对应的执行时长也或多或少的存在差异。但绝大部分与用户数据无关的任务对应的执行时长是遵循正态分布的,而与用户数据相关的任务并非遵循正态分布。
99.因此,在本技术实施例中,针对任务执行时长遵循正态分布的任务,和任务执行时长不遵循正态分布的任务,在根据历史任务执行信息,确定向任务执行系统发送任务查询请求的目标查询时间集合的方式不同。
100.且由于任务与用户数据相关的任务对应的执行时长不遵循正态分布,绝大部分与用户数据无关的任务对应的任务执行时长遵循正态分布。因此,在本技术实施例中,在根据历史任务执行信息,确定任务执行系统发送任务查询请求的目标查询时间集合之前,确定任务标识对应的目标任务是否为与用户数据无关的任务。
101.在确定目标任务为与用户数据无关的任务时,通过如下方式根据历史任务执行信息确定目标查询时间集合:
102.与用户数据无关的任务,任务执行时长较为固定,可以用正态分布去拟合任务结束时间,然后根据拟合出的任务结束时间确定至少一个目标查询时间。
103.方式一:当历史任务执行信息中包含历史任务平均执行时长、方差和任务数时。
104.根据历史任务执行信息中的平均执行时长和预设的查询次数,确定目标查询时间集合中的至少一个目标查询时间。
105.方式二:当历史任务执行信息中不包含历史任务平均执行时长、方差和任务数,但是包含有历史任务执行时长时。
106.根据历史任务执行信息中的历史任务执行时长,确定平均执行时长;
107.根据平均执行时长和预设的查询次数,确定目标查询时间集合中的至少一个目标查询时间。
108.在本技术实施例中,当历史任务总执行时长符合正态分布时,大部分任务执行结束时间为平均执行时长对应的时间,即在平均执行时长对应的时间目标任务执行结束的概率最大,确定目标任务执行结束的概率最大,可及时发现任务是否执行结束,因此将平均执行时长作为预测的目标任务总执行时长,即根据平均执行时长预测目标任务执行可能结束的时间点。由于是预测,因此为了更精准查询,需要在预测的目标任务执行结束时间前后,根据预设的查询次数确定目标查询时间。
109.比如,根据历史任务执行信息中的平均执行时长为6秒,预设的查询次数3次,则在平均执行时长的邻近时间确定目标查询时间集合中的至少一个目标查询时间,如目标查询时间集合为{5.7秒,6.4秒,7秒}。
110.在本技术实施例中,由于与用户数据无关的任务执行时长是遵循正太分布的,因此在确定目标查询时间集合中的具体值时,可以由正态分布下面积百分比对应的时间,以
及查询次数决定。比如正态分布的任务平均执行时长对应的时间点即为50%任务已结束的时间,如果任务发起系统对应的预设的查询次数为2次,每次有50%的任务返回,则第一次目标查询时间就是正态分布的平均值,第二次目标查询时间就是正态分布面积达到99.9%的值。
111.在确定目标任务为与用户数据相关的任务时,通过如下方式根据历史任务执行信息确定目标查询时间集合:
112.与用户数据相关的任务,任务执行时长不固定,但有一个任务最小执行时长,因此可以用历史任务执行时长的最小值,确定目标查询时间集合。
113.为了避免在初期频繁查询浪费资源,将历史任务最小执行时长作为预测的目标任务总执行时长,即预测目标任务执行可能结束的时间点。由于是预测,因此在历史任务最小执行时长对应的时间进行第一次任务查询请求,若返回的查询结果为任务执行结束,则可及时发现任务结束,减少耗时时延,若返回的查询结果为任务执行未结束,则继续发送任务查询请求。
114.在一种可能的实现方式中,在历史任务执行信息中确定最小历史任务执行时长,比如3秒;
115.将最小历史任务执行时长作为第一个目标查询时间距离接收到任务执行系统返回的任务标识后的间隔时长,此时第一个目标查询时间为接收到任务执行系统返回的任务标识后的第3秒,即在接收到任务执行系统返回的任务标识3秒时发第一个任务查询请求;
116.在确定了第一目标查询时间后,基于第一个目标查询时间,按照时间间隔递增的方式确定目标查询时间集合中至少一个其他目标查询时间。
117.比如,按照时间间隔1秒递增的方式确定目标时间集合中至少一个其他目标查询时间,此时第二个目标查询时间为接收到任务执行系统返回的任务标识后的第4秒,第三个目标查询时间为接收到任务执行系统返回的任务标识后的第6秒,第三个目标查询时间为接收到任务执行系统返回的任务标识后的第9秒。
118.在一种可能的实现方式中,在确定了第一目标查询时间后,基于第一个目标查询时间,按照时间间隔固定的方式确定目标查询时间集合中至少一个其他目标查询时间。
119.比如,按照时间间隔固定1秒的方式确定目标时间集合中至少一个其他目标查询时间,此时第二个目标查询时间为接收到任务执行系统返回的任务标识后的第4秒,第三个目标查询时间为接收到任务执行系统返回的任务标识后的第5秒,第三个目标查询时间为接收到任务执行系统返回的任务标识后的第6秒。
120.步骤s402,每到达目标查询时间集合中的一个目标查询时间,向任务执行系统发送任务查询请求,以查询目标任务是否结束。
121.比如,目标任务为与用户数据无关的任务,确定的目标查询时间集合为{5.7秒,6.4秒,7秒},此时当距离接收到任务执行系统返回的任务标识5.7秒时,向任务执行系统发送任务查询请求,以查询目标任务是否结束;若未结束,在距离接收到任务执行系统返回的任务标识6.4秒时,继续向任务执行系统发送任务查询请求,以查询目标任务是否结束;若未结束,在距离接收到任务执行系统返回的任务标识7秒时,继续向任务执行系统发送任务查询请求,以查询目标任务是否结束。
122.在一种可能的实现方式中,若在目标查询时间集合的最后一个目标查询时间发送
任务查询请求后,依旧接收到目标任务未结束通知后,采用时间间隔递增的方式或时间间隔固定的方式继续确定后续的查询时间,直至接收到目标任务结束通知时停止。
123.比如,在距离接收到任务执行系统返回的任务标识后7秒,向任务执行系统发送任务查询请求,接收到目标任务未结束通知后,在距离接收到任务执行系统返回的任务标识后8秒,继续向任务执行系统发送任务查询请求。
124.步骤s405,在接收到任务执行系统返回的目标任务结束通知时,确定目标任务结束。
125.在本技术实施例中,在确定目标任务接收后,将接收到目标任务结束通知之前,最后一个任务查询时间与接收到任务标识时间的间隔时长作为目标任务的历史任务执行时长,将根据历史任务执行时长确定的历史任务执行信息存储在历史记录中,以根据历史记录中记录的该历史任务执行信息,确定目标任务对应的发送任务查询请求的时间。
126.比如,第一次发起任务,进行任务查询时采用周期性查询的方式向任务执行系统发送任务查询请求,任务结束后历史记录中便有历史任务执行信息,根据历史任务执行信息可以确定平均执行时长;
127.第二次发起同类型任务时,以平均执行时长为基础,在平均执行时长附近根据预设次数进行查询,此时第二次发起任务便可能在一次查询的情况下发现任务结束,相比第一次任务查询耗时更少,且减少了不必要的查询次数,任务结束后更新历史记录中的历史任务执行信息,同时更新平均执行时长;
128.第三次发起同类型任务,进行任务查询时,因为平均执行时长,首次查询的时间也更短,浪费的时间比第二次发起同类型任务进行任务查询花费的时间更少;以此类推。整个过程就是不断更新历史记录中的历史任务执行信息,根据历史任务执行信息更新平均执行时长,随着任务的不断进行,历史记录不断更新,预测目标查询时间的效果也会越来越好。同时每次的查询间隔更短,因为任务查询引起的时间时延更少。
129.在一种可能的实现方式中,任务执行系统返回的目标任务结束通知中可能包括有目标任务的实际执行时长。在确定目标任务结束通知中包括目标任务的实际执行时长时,将目标任务的实际执行时长作为历史任务执行信息存储在历史记录中,根据实际执行时长预测目标查询时间更加准确,进一步可以减少查询次数,避免毫无意义的提前查询。
130.图5示例性的提供了本技术实施例中一种任务查询的整体方法流程图,该方法包括如下步骤:
131.步骤s500,任务发起系统向任务执行系统发送任务;
132.步骤s501,任务执行系统向任务发起系统发送任务标识;
133.步骤s502,任务发起系统在接收到任务执行系统返回的任务标识后,在历史记录中查找与任务标识对应的目标任务同类型的其他任务对应的历史任务执行信息,若查找到,则执行步骤s503,否则执行步骤s510;
134.步骤s503,任务发起系统根据历史任务执行信息,确定向任务执行系统发送任务查询请求的目标查询时间集合,目标查询时间集合包括至少一个目标查询时间;
135.步骤s504,每到达目标查询时间集合中的一个目标查询时间,任务发起系统向任务执行系统发送任务查询请求,以查询目标任务是否结束;
136.步骤s505,任务执行系统接收到任务发起系统发送的任务查询请求后,查询目标
任务是否结束,若目标任务结束,则执行步骤s506,否则执行步骤s508;
137.步骤s506,任务执行系统向任务发起系统返回目标任务结束通知;
138.步骤s507,任务发起系统将接收到目标任务结束通知之前,最后一个到达的目标查询时间与接收到任务标识时间的间隔时长作为目标任务的历史任务执行时长,并将根据该历史任务执行时长确定的历史任务执行信息存储在历史记录中;
139.步骤s508,任务执行系统向任务发起系统返回目标任务未结束通知;
140.步骤s509,任务发起系统返回步骤s504;
141.步骤s510,任务发起系统从接收到任务标识时间起,周期性地向任务执行系统发送任务查询请求,以查询目标任务是否结束;
142.步骤s511,任务执行系统接收到任务发起系统发送的任务查询请求后,查询目标任务是否结束,若目标任务结束,则执行步骤s512,否则执行步骤s514;
143.步骤s512,任务执行系统向任务发起系统返回目标任务结束通知;
144.步骤s513,任务发起系统将接收到目标任务结束通知之前,最后一个查询请求对应的查询时间与接收到任务标识时间的间隔时长作为目标任务的历史任务执行时长,并将根据该历史任务执行时长确定的历史任务执行信息存储在历史记录中;
145.步骤s514,任务执行系统向任务发起系统返回目标任务未结束通知;
146.步骤s515,任务发起系统返回步骤s510。
147.在本技术实施例中,利用历史任务执行信息,预测目标任务可能结束的时间点,在目标任务可能结束的时间点向任务执行系统发送任务查询请求,可以避免不必要的查询次数,且任务发起系统能及时发现目标任务结束,减少任务查询带来的任务耗时延迟,同时本技术依然保持了任务查询的简单、通用、耦合低的特点。且在本技术实施例中,不断优化历史记录,使预测目标任务可能结束的时间点越来越精准,进一步更加及时的发现目标任务结束。
148.基于同一发明构思,本技术实施例还提供了一种任务查询的装置600,如图6所示,该装置600包括:查找单元601、第一确定单元602、发送单元603以及第二确定单元604,其中:
149.查找单元601,用于在接收到任务执行系统返回的任务标识后,在历史记录中查找与任务标识对应的目标任务同类型的其他任务对应的历史任务执行信息;
150.第一确定单元602,用于根据历史任务执行信息,确定向任务执行系统发送任务查询请求的目标查询时间集合,目标查询时间集合包括至少一个目标查询时间;
151.发送单元603,用于每到达目标查询时间集合中的一个目标查询时间,向任务执行系统发送任务查询请求,以查询目标任务是否结束;
152.第二确定单元604,用于在接收到任务执行系统返回的目标任务结束通知时,确定目标任务结束。
153.在一种可能的实现方式中,查找单元601还用于:
154.若历史记录中未记录与目标任务同类型的其他任务对应的历史任务执行信息,则通过发送单元从接收到任务标识时间起,周期性地向任务执行系统发送任务查询请求,以查询目标任务是否结束。
155.在一种可能的实现方式中,第一确定单元602根据历史任务执行信息,确定任务执
行系统发送任务查询请求的目标查询时间集合之前,还用于确定任务标识对应的目标任务是否为与用户数据无关的任务。
156.在一种可能的实现方式中,第一确定单元602具体用于:
157.若目标任务为与用户数据无关的任务,则根据历史任务执行信息确定的平均执行时长和预设的查询次数,确定目标查询时间集合中的至少一个目标查询时间;或
158.若目标任务为与用户数据相关的任务,则根据历史任务执行信息中最小的历史任务执行时长,确定目标查询时间集合中的第一个目标查询时间,以及基于第一个目标查询时间,按照时间递增的方式确定目标查询时间集合中至少一个其他目标查询时间。
159.在一种可能的实现方式中,第二确定单元604确定目标任务结束之后,还用于:
160.将接收到目标任务结束通知之前,最后一个到达的目标查询时间与接收到任务标识时间的间隔时长作为目标任务的历史任务执行时长;
161.将根据历史任务执行时长,确定的历史任务执行信息存储在历史记录中。
162.为了描述的方便,以上各部分按照功能划分为各单元(或模块)分别描述。当然,在实施本技术时可以把各单元(或模块)的功能在同一个或多个软件或硬件中实现。
163.在介绍了本技术示例性实施方式的任务查询的方法及装置后,接下来介绍本技术的另一示例性实施方式的任务查询的计算设备。
164.所属技术领域的技术人员能够理解,本技术的各个方面可以实现为系统、方法或程序产品。因此,本技术的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
165.在一种可能的实现方式中,本技术实施例提供的任务查询计算设备可以至少包括处理器和存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本技术中各种示例性实施方式的任务查询方法中的任一步骤。
166.下面参照图7来描述根据本技术的这种实施方式的任务查询计算设备700。如图7的任务查询计算设备700仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
167.如图7所示,计算设备700的组件可以包括但不限于:上述至少一个处理器701、上述至少一个存储器702、连接不同系统组件(包括存储器702和处理器701)的总线703。
168.总线703表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
169.存储器702可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)7021和/或高速缓存存储器7022,还可以进一步包括只读存储器(rom)7023。
170.存储器702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
171.计算设备700也可以与一个或多个外部设备704(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算设备700交互的设备通信,和/或与使得该计算设备700能与一个或多个其它计算装置进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口705进行。并且,计算设备700还可以通过网络适
配器706与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图7所示,网络适配器706通过总线703与用于计算设备700的其它模块通信。应当理解,尽管图7中未示出,可以结合计算设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
172.在一些可能的实施方式中,本技术提供的任务查询的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本技术各种示例性实施方式的任务查询的方法中的步骤。
173.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
174.本技术的实施方式的短信息的发送控制的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在计算装置上运行。
175.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
176.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
177.可以以一种或多种程序设计语言的任意组合来编写用于执行本技术操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。
178.应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本技术的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
179.此外,尽管在附图中以特定顺序描述了本技术方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
180.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

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

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

相关文献