一种任务调度的方法及装置技术领域
本发明涉及电通信技术领域,尤其涉及一种任务调度的方法及装置。
背景技术
调度,是指根据执行或消耗的主体,对有限的资源进行合理分配。任
务调度是对执行任务的合理分配。
在产品生产与运行的过程中,会形成很多任务,对于这些任务可以分
配给不同的终端执行。所有的任务,通过调度中心分配到各个终端。
在现有技术中,调度中心将任务分配给终端之后,认为该终端可以执
行该任务。而实际上,由于终端的工作状态,终端可执行的任务类型与调
度中心分配的任务类型不匹配等原因,造成执行任务失败。而调度中心则
认为任务可以执行,这样不能保证调度中心的任务成功执行。
发明内容
本发明提供了一种任务调度的方法及装置,能够解决保证任务成功执
行的问题。
为了解决上述技术问题,一方面,本发明提供了一种任务调度的方法,
该方法包括:
连接预置数量的终端,所述终端用于执行任务;
接收并存储工单,所述工单中包括需要执行的任务,所述执行的任务
用工单号区分;
将工单中的任务分配到终端执行,并将所述任务对应的工单号标记为
正在执行;
若接收到终端返回的成功执行任务信息,则将所述任务对应的工单号
标记成功执行;
若未接收到终端返回的成功执行任务信息,则取消所述任务对应的工
单号的标记。
另一方面,本发明提供了一种任务调度的装置,该装置包括:
连接单元,用于连接预置数量的终端,所述终端用于执行任务;
接收单元,用于接收并存储工单,所述工单中包括需要执行的任务,
所述执行的任务用工单号区分;
分配单元,用于将所述接收单元接收的工单中的任务分配到所述连接
单元连接的终端执行,并将所述任务对应的工单号标记为正在执行;
标记单元,用于若接收到终端返回的成功执行任务信息,则将所述任
务对应的工单号标记成功执行;
取消单元,用于若未接收到终端返回的成功执行任务信息,则取消所
述任务对应的工单号的标记。
本发明提供的任务调度的方法及装置,通过连接预设数量的终端,将
接收到的工单中的任务分配到连接的终端上,将分配到终端上的任务对应
的工单号标记为正在执行,若接收终端返回的成功执行任务信息,则将任
务对应的工单号标记为成功执行,若未接收到终端返回的成功执行任务信
息,则取消任务对应的工单号的标记。与现有技术相比,本发明能够通过
标记工单号,区分工单中的任务是否已分配或者是否成功执行,分配没有
标记的工单号,以保证工单中的任务能成功执行。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的
技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和
其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于
本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目
的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符
号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种任务调度的方法流程图;
图2示出了本发明实施例提供的另一种任务调度的方法流程图;
图3示出了本发明实施例提供的一种任务调度的装置组成框图;
图4示出了本发明实施例提供的另一种任务调度的装置组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显
示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开
而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更
透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术
人员。
本发明实施例提供了一种任务调度的方法,如图1所述,该方法包括:
101、连接预置数量的终端。
终端用于执行任务。终端,可以指任务的直接执行者,也可以是任务
的间接执行者。在本实施例中,对终端是否为任务的直接执行者不做限定。
若终端为任务的间接执行者,终端将任务继续下发,直至找到任务的
直接执行者。由此执行任务的整个系统就构成了一个分布式系统。在分布
式系统中,可以将任务的直接执行终端分组连接到任务的间接执行终端上。
分组方式,可以将执行同一类任务的终端分为一组,可以将执行同一系列
任务的终端分为一组。在本实施例中,对分组方式不做限定。
根据任务量的不同,系统规模的不同,终端的数量也不相同。终端的
预置数量,是根据任务量,系统规模等信息确定的。在本实施例中,对预
置数量的大小不做限定。
102、接收并存储工单。
工单中包括需要执行的任务,执行的任务用工单号区分。接收生成的
任务,任务以工单的形式给出。在本实施例中,对工单中的任务的数量不
做限定。工单中包括执行的任务,区分任务的工单号,任务的类型,执行
任务所需的资源等任务相关信息。为保证任务执行,记录工单中的任务相
关信息。存储接收到的工单,也就是暂时保存工单,在工单中任务未成功
执行过程中,保存工单。
区分任务的工单号,可以是接收到工单的流水号,可以是随机生成的
随机号,也可以是根据一定规则设置工单号。在本实施例中,对工单号的
设置方式不做限定。
接收到的任务,全部存储在工单中。
103、将工单中的任务分配到终端执行,并将任务对应的工单号标记为
正在执行。
任务分配的方式,可以根据工单中任务的数量与终端的数量平均分配,
可以根据执行任务所需的时间与终端执行的速度按照工作时长分配,也可
以根据执行任务所需的终端资源与终端的剩余资源按照剩余资源的多少分
配。在本实施中,对任务分配的方式不做限定。
在分配任务时,可以将工单中的任务全部分给终端,也可以在终端空
闲时将工单中的任务分配给终端。
将任务分配到终端后,将任务对应的工单号标记为正在执行,以区别
待分配和已分配的任务。正在执行的标识中,可以包含执行该任务的终端
信息。
104、若接收到终端返回的成功执行任务信息,则将任务对应的工单号
标记成功执行。
终端成功执行任务后,发送成功执行任务信息。接收到终端返回的成
功执行任务信息,修改任务对应的工单号的标记信息,将标记修改为成功
执行。
对于已经成功执行的任务,可以删除该任务,可以转存储到其他位置,
也可以依旧放在工单中。在本实施例中,对已经成功执行的任务的处理方
式不做限定。
105、若未接收到终端返回的成功执行任务信息,则取消任务对应的工
单号的标记。
终端未成功执行任务后,发送未成功执行任务信息。接收到终端返回
未成功执行任务信息,修改任务对应的工单号的标记信息,取消标记。取
消单号标记后,该任务与待分配的任务一样,等待重新分配执行终端。这
样重新分配执行终端未成功执行的任务,保证生产的任务能成功执行。
本发明实施例提供的任务调度的方法,通过连接预设数量的终端,将
接收到的工单中的任务分配到连接的终端上,将分配到终端上的任务对应
的工单号标记为正在执行,若接收终端返回的成功执行任务信息,则将任
务对应的工单号标记为成功执行,若未接收到终端返回的成功执行任务信
息,则取消任务对应的工单号的标记。与现有技术相比,本发明实施例能
够通过标记工单号,区分工单中的任务是否已分配或者是否成功执行,分
配没有标记的工单号,以保证工单中的任务能成功执行。
进一步地,作为图1所示方法的细化和扩展,本发明实施例还提供了
另一种任务调度的方法,如图2所示,该方法包括:
201、连接预置数量的终端。
终端用于执行任务。预置数量的终端,表示并行的可同时执行任务的
终端数量。
202、接收并存储工单。
工单中包括需要执行的任务,执行的任务用工单号区分。工单,也就
是任务执行单,包括所有生成的任务。
203、判断终端是否为有效终端。
终端执行任务,为了保证终端能执行任务,需要判断终端的有效性。
判断终端是否有效,需要判断终端的工作状态是否正常;若终端的工作状
态正常,则判断终端能够处理的任务类型是否包括分配的任务类型;若终
端能够处理的任务类型包括分配的任务类型,则确定终端为有效终端。
若终端为机器,那么在机器运转的工程中,可能会出现故障,暂停执
行任务。终端存在暂停执行任务和可执行任务两种状态,终端的可执行任
务状态为正常的工作状态。对于终端是否为正常状态的判断,可以定时接
收工单上报状态消息判断终端是否正常,也可以在需要执行的任务时向终
端发出询问消息,根据终端返回的消息判断终端是否正常。在本实施例中,
对判断终端是否为正常状态的消息获取方式不做限定。
当终端的工作状态正常时,还需判断终端能否执行该任务。示例性的,
在电路板在的制作过程中,其中的一项任务为打印电路板,选择的终端为
腐蚀线路板终端,那么腐蚀线路板终端,并不能成功执行该任务。所以需
要判断终端能处理的任务类型是否包括要分配的任务类型。
经过两次判断,判断对于某一个任务而言,终端是否为该任务的有效
终端。所有的任务在分配到终端之前,都需要判断哪些终端为有效终端。
204、将工单中的任务分配到终端执行,并将任务对应的工单号标记为
正在执行。
将工单中的任务分配到终端,是为了保证任务能够执行,所以工单中
的任务不是随机分配到终端的,需要判断终端是否为有效终端;若为有效
终端,则获取所述有效终端的任务执行能力信息,所述任务执行能力信息
包括正在执行的任务数量、等待执行的任务数量、所需等待的时间等信息;
根据预置的任务分配规则,按照获取的任务执行能力信息,将待分配任务
分到有效终端执行。
对于有效终端的任务执行能力信息,可以接收有效终端定时上报的消
息,也可以向终端发出询问消息,接收工单返回的消息。在本实施例中,
对有效终端的任务执行能力信息的获取方式不做限定。
根据预置的任务分配规则,预置的分配规则中涉及任务执行能力信息,
以及待分配任务信息。预置的任务分配规则得目的,可以为执行任务时间
最短、任务完成的质量最优、任务等待执行的等待时间最短等。在本实施
例中,对预置的任务分配规则的目的不做限定。将工单中的任务案子预置
的任务分配规则,分配到有效终端上执行。
将已分配的任务对应的工单号标记为正在执行。这里的正在执行,表
示任务已经被分配到终端,而不是任务在工单中的执行状态是正在执行。
在任务分配的过程中,将工单中的任务不重复地分配到不同的终端执
行。也就是说,一个任务只能分配到一个终端,不能将同一个任务分配到
多个终端。
工单中任务,先生成,后执行,工单中任务的生成与执行是异步的。
205、若接收到终端返回的成功执行任务信息,则将任务对应的工单号
标记成功执行。
206、若未接收到终端返回的成功执行任务信息,则取消任务对应的工
单号的标记。
对于本发明实施例,具体的应用场景可以如下所示,但不限于此,包
括:接收到统计数据表中数据的任务,数据表中的数据表示互联网用户某
一个月的网速情况,有5个互联网用户的数据表。现有3个终端能处理这
个任务,且3个终端均为有效终端。
将统计5个数据表的任务编号,统计数据表1的工单号为001,统计数
据表2的工单号为002,统计数据表3的工单号为003,统计数据表4的工
单号为004,统计数据表5的工单号为005。假设每个终端当前都没有工作
任务,根据预置的任务分配规则,将统计数据表1、数据表2和数据表3的
任务,分配给终端1、终端2和终端3,将统计数据表对应的工单号001、
002、003标记为正在执行。数据表1与数据表2统计完毕,返回成功执行
任务信息,将统计数据表1与数据表2对应的工单号001、002标记为成功
执行。数据表3未成功统计,返回未成功执行任务信息,取消统计数据表3
对应的工单号003的标记。将待分配的任务统计数据表3、统计数据表4和
统计数据表5,分配给终端1、终端2和终端3,将统计数据表对应的工单
号003、004、005标记为正在执行。数据表3、数据表4与数据表5统计完
毕,返回成功执行任务信息,将数据表3、数据表4与数据表5对应的工单
号003、004、005标记为成功执行。
进一步地,作为图1和图2所示方法的实现,本发明实施例提供了一
种任务调度的装置。本装置实施例与前述方法实施例对应,为便于阅读,
本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当
明确,本装置实施例能够对应实现前述方法实施例中的全部内容。如图3
所示,该装置包括:连接单元31、接收单元32、分配单元33、标记单元
34以及取消单元35。其中,
连接单元31,用于连接预置数量的终端,终端用于执行任务;
接收单元32,用于接收并存储工单,工单中包括需要执行的任务,执
行的任务用工单号区分;
分配单元33,用于将接收单元32接收的工单中的任务分配到连接单元
31连接的终端执行,并将任务对应的工单号标记为正在执行;
标记单元34,用于若接收到终端返回的成功执行任务信息,则将任务
对应的工单号标记成功执行;
取消单元35,用于若未接收到终端返回的成功执行任务信息,则取消
任务对应的工单号的标记。
进一步地,分配单元33,用于将工单中的任务不重复地分配到不同的
终端执行。
进一步地,如图4所示,分配单元33,包括:
判断模块331,用于判断终端是否为有效终端;
获取模块332,用于若判断模块331判断为有效终端,则获取有效终端
的任务执行能力信息,任务执行能力信息包括正在执行的任务数量、等待
执行的任务数量、所需等待的时间等信息;
分配模块333,用于根据预置的任务分配规则,按照获取模块332获取
的任务执行能力信息,将待分配任务分到判断模块331判断的有效终端执
行。
进一步地,如图4所示,判断模块331,包括:
判断子模块3311,用于判断终端的工作状态是否正常;
判断子模块3311,用于若判断子模块判断终端的工作状态正常,则判
断终端能够处理的任务类型是否包括分配的任务类型;
确定子模块3312,用于若判断子模块3311判断终端能够处理的任务类
型包括分配的任务类型,则确定终端为有效终端。
进一步地,接收单元32接收的工单中任务的生成与执行是异步的。
本发明实施例提供的任务调度的装置,通过连接预设数量的终端,将
接收到的工单中的任务分配到连接的终端上,将分配到终端上的任务对应
的工单号标记为正在执行,若接收终端返回的成功执行任务信息,则将任
务对应的工单号标记为成功执行,若未接收到终端返回的成功执行任务信
息,则取消任务对应的工单号的标记。与现有技术相比,本发明实施例能
够通过标记工单号,区分工单中的任务是否已分配或者是否成功执行,分
配没有标记的工单号,以保证工单中的任务能成功执行。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没
有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,
上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施
例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述
描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的
对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备
固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的
描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对
任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本
发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实
施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,
本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,
并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一
个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征
有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将
该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个
权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要
求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。
因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,
其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行
自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。
可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及
此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或
过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明
书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开
的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本
说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提
供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括
其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征
的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下
面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合
方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处
理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员
应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现
根据本发明实施例的发明名称(如确定网站内链接等级的装置)中的一些
或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所
描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和
计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质
上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网
站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限
制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出
替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成
对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步
骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明
可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实
现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通
过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示
任何顺序。可将这些单词解释为名称。