CN104063279B - 任务调度方法、装置和终端 - Google Patents
任务调度方法、装置和终端 Download PDFInfo
- Publication number
- CN104063279B CN104063279B CN201310091380.XA CN201310091380A CN104063279B CN 104063279 B CN104063279 B CN 104063279B CN 201310091380 A CN201310091380 A CN 201310091380A CN 104063279 B CN104063279 B CN 104063279B
- Authority
- CN
- China
- Prior art keywords
- task
- request
- layer
- type
- request task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种任务调度方法、装置和终端,属于安卓平台应用开发领域。所述任务调度方法包括:通过调度层接收用户界面UI层发送的任务请求;通过所述调度层发送所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;通过所述调度层接收所述请求任务;通过所述调度层调度所述请求任务的执行;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果。
Description
技术领域
本发明涉及安卓平台应用开发领域,特别涉及一种任务调度方法、装置和终端。
背景技术
UI(User Interface,用户界面)设计是安卓操作系统的程序开发中最为重要的一个组成部分。
在实际应用中,当终端接收到来自UI的任务请求时,终端就需要执行任务的调度。现有方法提供了两种任务调度方案,第一种方案包括:终端接收来自UI的任务请求;终端产生与UI的任务请求对应的请求任务;终端将请求任务投放至指定线程池中,从而依次执行指定线程池中的各个请求任务;第二种方案包括:接收来自UI的任务请求,并为该任务请求对应的请求任务创建一个线程,从而直接运行该线程。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:
在第一种方案中,当UI需要请求多个任务时,终端会将生成的多个请求任务依次投放到同一个线程池中,从而按照线程池中各个请求任务的排序依次执行,这就导致比较重要的请求任务可能排在线程池中较后的位置,从而终端不能及时处理该请求任务,也即终端不能对各个请求任务进行统一调度,任务调度不合理;在第二种方案中,由于在接收到UI任务请求之后直接为请求任务创建一个线程来运行对应的请求任务,所以当UI有多个任务请求时,可能会可能存在比较重要的请求任务一直得不到执行,也即终端不能对各个请求任务进行统一调度,任务调度不合理。
发明内容
为了解决现有技术中任务调度不合理的问题,本发明实施例提供了一种任务调度方法、装置和终端。所述技术方案如下:
第一方面,提供了一种任务调度方法,所述方法包括:
通过调度层接收用户界面UI层发送的任务请求;
通过所述调度层发送所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;
通过所述调度层接收所述请求任务;
通过所述调度层调度所述请求任务的执行。
第二方面,提供了一种任务调度装置,所述任务调度装置包括:
请求接收模块,用于通过调度层接收用户界面UI层发送的任务请求;
任务生成模块,用于通过所述调度层发送所述请求接收模块接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;
任务接收模块,用于通过所述调度层接收所述任务生成模块生成的所述请求任务;
任务调度模块,用于通过所述调度层调度所述请求任务的执行。
第三方面,提供了一种终端,所述终端包括上述所述的任务调度装置。
本发明实施例提供的技术方案的有益效果是:
通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的任务调度方法的方法流程图;
图2是本发明实施例二提供的任务调度方法的方法流程图;
图3是本发明实施例二提供的任务调度方法调度时的结构示意图;
图4是本发明实施例二提供的调度层将请求任务投放至线程池中的结构示意图;
图5是本发明实施例三提供的任务调度方法的方法流程图;
图6是本发明实施例四提供的任务调度装置的结构方框图;
图7是本发明实施例五提供的任务调度装置的结构方框图;
图8是本发明实施例六提供的任务调度装置的结构方框图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
请参考图1,其示出了本发明实施例一提供的任务调度方法的方法流程图,该任务调度方法可以用于基于安卓平台的终端中,该任务调度方法,可以包括:
步骤101,通过调度层接收用户界面UI层发送的任务请求;
步骤102,通过调度层发送任务请求至任务层,使得任务层生成对应于任务请求的请求任务并发送请求任务至调度层;
步骤103,通过调度层接收请求任务;
步骤104,通过调度层调度请求任务的执行。
综上所述,本实施例提供的任务调度方法,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
实施例二
请参考图2,其示出了本发明实施例二提供的任务调度方法的方法流程图,该任务调度方法可以用于基于安卓平台的终端中,该任务调度方法,可以包括:
步骤201,通过调度层接收用户界面UI层发送的任务请求;
在基于安卓平台的UI设计中,设计人员可以按照应用程序中各部分实现的功能,将应用程序划分成UI层、任务层和调度层三层,其中,UI层用于实现UI显示、任务层用于生成UI层任务请求的请求任务,调度层用于实现对UI层发送的任务请求的转发,并实现对请求任务的调度。具体的,当终端通过UI层发送一个任务请求时,终端可以通过调度层接收UI层发送的任务请求。
其中,为了使得终端可以通过操作系统按照UI的任务请求所对应的各请求任务的重要性依次执行各请求任务,终端可以通过在UI层发送的任务请求中携带该任务请求对应的请求任务的优先级。
比如,在UI设计时,设计人员通过程序编码将‘A、B、C、D、E、F、G’7个任务的优先级设定为A>B>C>D>E>F>G,并且为每个任务的优先级分别设置一个标识如1、2、3、4、5、6和7,从而在终端通过UI层发送任务请求时,通过任务请求携带该任务请求对应的请求任务的优先级。
需要说明的是,本实施例只是以通过编程的方式为各请求任务设定优先级为例,在实际实现时还可以通过接口写入或者系统默认的方式为各请求任务设定优先级,本实施例在此不再赘述。并且,本实施例也只是以为不同优先级设定不同标识为例,在具体实现时,还可以通过其他方式来表征各请求任务的优先级,本实施例在此不再一一举例。
步骤202,通过调度层发送任务请求至任务层,使得任务层生成对应于任务请求的请求任务并发送请求任务至调度层;
在终端通过调度层接收到UI层发送的任务请求之后,为了让任务层可以相应的根据任务请求生成对应的请求任务,终端可以通过调度层发送任务请求至任务层,从而在终端通过任务层接收到任务请求之后,终端可以通过任务层根据任务请求生成对应的请求任务,并且在生成请求任务之后反馈请求任务至调度层,具体流程请参考图3。
优选地,由于终端可以通过UI层在不同时刻请求相同内容的请求任务,所以为了实现对不同时刻的内容相同的请求任务的区分,在终端通过任务层生成对应于任务请求的请求任务时,终端可以通过任务层为每个请求任务分配一个ID。具体的,终端可以通过任务层将接收到任务请求的时间设置为对应的请求任务的ID。而为了区分同一时间的不同请求任务,终端还可以通过任务层将接收到任务请求的时间和一个随机数设置为对应的请求任务的ID,本实施例只是以上述方式生成请求任务的ID为例,在具体实现时,还可以通过其他方式为请求任务分配一个标识身份的ID,本实施例对此并不做限定。
在实际实现时,为了方便设计人员后期对系统的维护,通过更改较少的程序代码来实现新增任务或者更改任务,终端可以通过任务层使用工厂生产的方法来生成对应于任务请求的请求任务。
步骤203,通过调度层接收请求任务;
在终端通过任务层生成请求任务并且反馈请求任务至调度层之后,终端可以通过调度层相应的接收到请求任务。
步骤204,通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;
为了使得操作系统能够按照请求任务的优先级依次执行各请求任务,在终端通过调度层接收到请求任务之后,终端可以通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列中。
具体的,由于终端可以通过UI层不断的发送任务请求,也即终端可以通过调度层不断的接收到任务层生成的对应于各任务请求的请求任务,所以为了使得高优先级的请求任务得到的优先执行,终端可以通过调度层将接收到的请求任务按照优先级进行排序,从而生成一个待执行请求任务队列,并且在每次接收到一个新的请求任务时,终端可以通过调度层将请求任务按照优先级的高低插入到待执行请求任务队列中。
比如,终端调度层的待执行请求任务队列中有‘A、B、E、F’四个请求任务,终端通过调度层接收到的一个新的请求任务为D,则由于终端调度层接收到的请求任务D的优先级为4,请求任务A、B、E和F的优先级分别为1、2、5和6,所以终端可以通过调度层将请求任务D插入到待执行请求任务队列中,从而生成顺序为‘A、B、D、E、F’的一个新的待执行请求任务队列。类似的,如果终端通过调度层接收到的请求任务为G,而请求任务G的优先级高于请求任务A的优先级,则此时,终端可以通过调度层将请求任务G按照优先级的顺序插入到待执行请求任务队列中,从而生成‘G、A、B、E、F’的新的待执行请求任务队列,在此本实施例不再赘述。
需要说明的是,当终端通过任务层为请求任务分配ID时,终端可以通过调度层将请求任务按照ID进行区分,并按照优先级由高到低的顺序插入到已有的待执行请求任务队列,本实施例在此不再赘述。
步骤205,通过调度层将待执行请求任务队列中的各个请求任务逐个投放至线程池中,从而通过操作系统逐个执行线程池中的任务;
在终端通过调度层将请求任务按照优先级由高到低的顺序插入到待执行请求任务队列中以后,终端可以通过调度层将待执行请求任务队列中的各请求任务逐个投放至线程池中,从而通过操作系统逐个执行线程池中的任务。
具体的,终端通过调度层将请求任务插入到待执行任务队列之后得到的新的待执行请求任务队列为‘A、B、D、E、F’,则终端可以通过调度层将请求任务A、B、D、E和F逐次投放至线程池中,如果线程池是可以包含两个线程的线程池,则请求任务D、E和F将在堆栈中进行排队等候,也即可以相应的生成如图4所示的堆栈,从而终端可以通过操作系统依次调度执行A、B、D、E和F的请求任务。
需要说明的是,如果终端可以通过操作系统同时运行两个线程,则终端可以通过操作系统每次从线程池中调用两个请求任务,从而同时执行两个请求任务,并且当操作系统执行完其中一个请求任务之后,终端可以通过操作系统从线程池的堆栈中取下一个请求任务进行执行,在此本实施例不再赘述。
步骤206,当操作系统执行完请求任务之后,发送反馈信息至UI层。
为了告知UI层它发送的任务请求对应的请求任务的执行情况,在终端通过操作系统执行完请求任务之后,终端可以发送反馈信息至UI层。
在实际实现时,终端通过在UI层发送的任务请求中携带一个对应于任务请求的回调函数,从而使得在操作系统执行完该任务请求对应的请求任务之后,直接通过回调函数告知UI层该请求任务已经执行完成,本实施例对此并不做限定。
综上所述,本实施例提供了的任务调度方法,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
实施例三
请参考图5,请示出了本发明实施例三提供的任务调度方法的方法流程图,该任务调度方法可以用于基于安卓平台的终端中,与上述实施例不同的是,本实施例中终端可以通过任务层生成对应于请求任务的任务类型,从而终端可以通过调度层按照各请求任务的任务类型将请求任务投放到与任务类型对应的线程池中,该任务调度方法,可以包括:
步骤301,通过调度层接收用户界面UI层发送的任务请求;
在基于安卓平台的UI设计中,设计人员可以按照应用程序中各部分实现的功能,将应用程序划分成UI层、任务层和调度层三层,其中,UI层用于实现UI显示、任务层用于生成UI层任务请求的请求任务,调度层用于实现对UI层发送的任务请求的转发,并实现对请求任务的调度。具体的,当终端通过UI层发送一个任务请求时,终端可以通过调度层接收UI层发送的任务请求。
其中,为了使得终端可以通过操作系统按照UI的任务请求所对应的各请求任务的重要性依次执行各请求任务,终端可以通过在UI层发送的任务请求中携带该任务请求对应的请求任务的优先级。
步骤302,通过调度层发送任务请求至任务层,使得任务层生成对应于任务请求的请求任务并发送请求任务至调度层;
在终端通过调度层接收到UI层发送的任务请求之后,为了让任务层可以相应的根据任务请求生成对应的请求任务,终端可以通过调度层发送任务请求至任务层,从而在终端通过任务层接收到任务请求之后,终端可以通过任务层根据任务请求生成对应的请求任务,并且在生成请求任务之后反馈请求任务至调度层。
优选地,由于终端可以通过UI层在不同时刻请求相同内容的请求任务,所以为了实现对不同时刻的内容相同的请求任务的区分,在终端通过任务层生成对应于任务请求的请求任务时,终端可以通过任务层为每个请求任务分配一个ID。具体的,终端可以通过任务层将接收到任务请求的时间设置为对应的请求任务的ID。而为了区分同一时间的不同请求任务,终端还可以通过任务层将接收到任务请求的时间和一个随机数设置为对应的请求任务的ID,本实施例只是以上述方式生成请求任务的ID为例,在具体实现时,还可以通过其他方式为请求任务分配一个标识身份的ID,本实施例对此并不做限定。
更为优选地,为了使得终端可以通过操作系统在按照各个请求任务的优先级顺序执行的同时可以按照各个请求任务的任务类型来执行,在终端通过任务层生成对应于任务请求的请求任务的同时,终端可以通过任务层生成对应于请求任务的任务类型。其中,终端可以通过任务层根据请求任务本身属性如下载数据或者获取图片、运行时占用的时间以及运行时占用资源三个方面来生成请求任务的任务类型。
具体的,终端通过任务层生成请求任务的任务类型的方法可以包括:
第一,终端通过任务层分别计算请求任务的本身属性、运行时占用的时间以及运行时占用的资源的得分;
由于终端通过ID层发送的任务请求可以是获取图片或者下载数据,而对于ID显示来说,图片显示带来的用户体验远高于数据下载的用户体验,所以终端可以通过任务层根据请求任务的本身属性设置不同的得分,如获取图片的得分为9分、下载数据的得分为5分;同时由于一下请求任务的运行时间较长,如果操作系统一直运行该请求任务,那么其他运行时间很短的请求任务需要一直处于等待状态,严重影响请求任务的执行效率,所以终端可以通过任务层根据请求任务的运行时占用的时间分配不同的得分,如运行时占用时间越长的请求任务的得分越小,运行时占用时间越短的请求任务的得分越大;另外,由于运行时占用资源较多的请求任务在运行时,操作系统不能或者以极慢的速度响应终端中的其他请求,所以终端可以通过任务层根据运行时占用的资源的不同而分配不同的得分,如为占用资源多的请求任务分配较小的得分,而占用资源少的请求任务分配较多的得分。
第二,终端通过任务层为请求任务的本身属性、运行时占用的时间以及运行时占用的资源分配对应的权值;
在终端通过任务层生成请求任务的任务类型时,终端还可以通过任务层为请求任务的本身属性、运行时占用的时间以及运行时占用的资源分配对应的权值。
第三,终端通过任务层根据请求任务的本身属性、运行时占用的时间以及运行时占用的资源的得分以及各自对应的权值计算该请求任务的得分,并根据得分生成该请求任务的任务类型。
终端通过任务层得到请求任务的本身属性、运行时占用的时间以及运行时占用的资源的得分以及各自对应的权值以后,可以根据得分以及对应的权值计算请求任务的总得分,从而当总得分大于预设阈值时,可以认为该请求任务是关键性任务,终端可以通过任务层将该请求任务的任务类型设置为第一任务类型;当总得分小于预设阈值时,可以认为该请求任务是非关键性任务,终端可以通过任务层将该请求任务的任务类型设置为第二任务类型。
在终端通过任务层生成对应于任务请求的请求任务以及对应的任务类型之后,终端可以通过任务层发送请求任务以及对应的任务类型至调度层。
需要补充说明的是,在实际实现时,为了方便设计人员后期对系统的维护,通过更改较少的程序代码来实现新增任务或者更改任务,终端可以通过任务层使用工厂生产的方法来生成对应于任务请求的请求任务。
步骤303,通过调度层接收请求任务以及请求任务对应的任务类型;
在终端通过任务层发送请求任务以及对应的任务类型至调度层之后,终端可以通过调度层相应的接收请求任务以及对应的任务类型。
步骤304,通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;
为了使得操作系统能够按照请求任务的优先级依次执行各请求任务,在终端通过调度层接收到请求任务之后,终端可以通过调度层将请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列中。
需要说明的是,当终端通过任务层为请求任务分配ID时,终端可以通过调度层将请求任务按照ID进行区分,并按照优先级由高到低的顺序插入到已有的待执行请求任务队列,本实施例在此不再赘述。
步骤305,通过调度层将待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与任务类型对应的线程池中;
在终端通过调度层得到待执行请求任务队列之后,终端可以通过调度层将待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与任务类型对应的线程池中。
具体的,在终端将待执行请求任务队列中的第i个请求任务投放至线程池时,终端可以通过调度层检测待执行请求任务队列中的第i个请求任务是第一任务类型还是第二任务类型;
当终端通过调度层检测到待执行任务队列中的第i个请求任务的任务类型是第一任务类型,则说明该请求任务是关键性任务,运行时占用时间较短或者希望操作系统尽快执行,所以终端可以通过调度层将该请求任务投放到第一线程池中。
当终端通过调度层检测到待执行任务队列中的第i个请求任务的任务类型是第二任务类型,则说明该请求任务是非关键性任务,运行时占用时间较长或者即使不立即执行对用户体验也没有过多的影响,所以终端可以通过调度层将请求任务投放到第二线程池中。
在终端通过调度层将请求任务投放至第一线程池或者第二线程池中以后,终端可以通过操作系统同时运行两个线程池中的任务,从而避免了关键性任务需要等待非关键性任务执行完才能执行,请求任务的执行效率低的问题。
步骤306,当操作系统执行完请求任务之后,发送反馈信息至UI层。
为了告知UI层它发送的任务请求对应的请求任务的执行情况,在终端通过操作系统执行完请求任务之后,终端可以发送反馈信息至UI层。
在实际实现时,终端通过在UI层发送的任务请求中携带一个对应于任务请求的回调函数,从而使得在操作系统执行完该任务请求对应的请求任务之后,直接通过回调函数告知UI层该请求任务已经执行完成,本实施例对此并不做限定。
综上所述,本实施例提供的任务调度方法,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
实施例四
请参考图6,其示出了本发明实施例四提供的任务调度装置的结构方框图,该任务调度装置可以实现为基于安卓平台的终端的全部或者部分,该任务调度装置,可以包括:请求接收模块410,任务生成模块420,任务接收模块430和任务调度模块440;
请求接收模块410,用于通过调度层接收用户界面UI层发送的任务请求;
任务生成模块420,用于通过所述调度层发送所述请求接收模块410接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;
任务接收模块430,用于通过所述调度层接收所述任务生成模块生成的所述请求任务;
任务调度模块440,用于通过所述调度层调度所述请求任务的执行。
综上所述,本实施例提供的任务调度装置,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
实施例五
请参考图7,其示出了本发明实施例五提供的任务调度装置的结构方框图,该任务调度装置可以实现为基于安卓平台的终端的全部或者部分,该任务调度装置,可以包括:请求接收模块410,任务生成模块420,任务接收模块430和任务调度模块440;
请求接收模块410,用于通过调度层接收用户界面UI层发送的任务请求;
任务生成模块420,用于通过所述调度层发送所述请求接收模块410接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;
任务接收模块430,用于通过所述调度层接收所述任务生成模块生成的所述请求任务;
任务调度模块440,用于通过所述调度层调度所述请求任务的执行。
进一步地,所述任务请求携带有所述请求任务的优先级,所述任务调度模块440,可以包括:任务插入单元441,任务调度单元442,任务执行单元443和信息反馈单元444;
任务插入单元441,用于通过所述调度层将所述请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;
任务调度单元442,用于通过所述调度层将所述任务插入单元得到的所述待执行请求任务队列中的各个请求任务逐个投放至线程池中;
任务执行单元443,用于通过操作系统逐个执行所述线程池中的任务;
信息反馈单元444,用于当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层。
进一步地,所述任务请求携带有所述请求任务的回调函数,
所述信息反馈单元444,还用于当所述操作系统执行完所述请求任务之后,根据所述回调函数发送反馈信息至所述UI层。
综上所述,本实施例提供的任务调度装置,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
实施例六
请参考图8,其示出了本发明实施例六提供的任务调度装置的结构方框图,该任务调度装置可以实现为基于安卓平台的终端中的全部或者部分,该任务调度装置,可以包括:请求接收模块410,任务生成模块420,任务接收模块430和任务调度模块440;
请求接收模块410,用于通过调度层接收用户界面UI层发送的任务请求;
任务生成模块420,用于通过所述调度层发送所述请求接收模块410接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务并发送所述请求任务至所述调度层;
任务接收模块430,用于通过所述调度层接收所述任务生成模块生成的所述请求任务;
任务调度模块440,用于通过所述调度层调度所述请求任务的执行。
进一步地,所述任务请求携带有所述请求任务的优先级,所述任务调度模块440,可以包括:任务插入单元441,任务调度单元442,任务执行单元443和信息反馈单元444;
任务插入单元441,用于通过所述调度层将所述请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;
任务调度单元442,用于通过所述调度层将所述任务插入单元得到的所述待执行请求任务队列中的各个请求任务逐个投放至线程池中;
任务执行单元443,用于通过操作系统逐个执行所述线程池中的任务;
信息反馈单元444,用于当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层。
进一步地,所述任务接收模块430,还用于通过所述调度层接收所述请求任务以及所述请求任务对应的任务类型;
所述任务调度单元442,还用于通过所述调度层将所述待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中。
进一步地,所述任务类型包括第一任务类型和第二任务类型,所述第一任务类型表示所述请求任务是关键性任务;所述第二任务类型表示所述请求任务是非关键性任务,所述任务调度单元,包括:任务检测子单元510,第一结果子单元520和第二结果子单元530;
任务检测子单元510,用于通过所述调度层检测所述待执行请求任务队列中的第i个请求任务的任务类型是所述第一任务类型还是所述第二任务类型;
第一结果子单元520,用于若所述任务检测子单元510的检测结果为为任务类型是所述第一任务类型,则将所述待执行请求任务队列中的第i个请求任务投放至第一线程池中;
第二结果子单元530,用于若所述任务检测子单元510的检测结果为任务类型是所述第二任务类型,则将所述待执行请求任务队列中的第i个请求任务投放至第二线程池中;
其中i为大于等于1的正整数。
进一步地,所述任务请求携带有所述请求任务的回调函数,
所述信息反馈单元444,还用于当所述操作系统执行完所述请求任务之后,根据所述回调函数发送反馈信息至所述UI层。
综上所述,本实施例提供的任务调度装置,通过使用调度层接收UI层的任务请求,并且通过调度层将任务请求发送至任务层,使得任务层根据任务请求生成对应的请求任务之后反馈请求任务至调度层,从而通过调度层接收请求任务并调度请求任务的执行;解决了现有技术中按照请求任务的请求时间投放至线程池中时,不能对各请求任务统一调度,从而使得操作系统只能按照请求任务请求的顺序执行,而比较重要但后请求的各请求任务不能得到及时执行,请求任务的执行效率的低的问题;达到了可以通过调度层统一调度UI层发送的各任务请求从而调度各任务请求对应的请求任务,实现对各请求任务统一管理的效果;并且通过将UI任务请求、请求任务的生成以及调度操作由UI层、任务层和调度层分别执行,达到了降低UI层的请求和业务之间的耦合度,从而降低开发成本的效果。
需要说明的是:上述实施例提供的任务调度装置在调度任务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的任务调度装置与任务调度方法的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种任务调度方法,其特征在于,所述方法包括:
通过调度层接收用户界面UI层发送的任务请求;
通过所述调度层发送所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务和所述请求任务对应的任务类型,并发送所述请求任务和所述请求任务对应的任务类型至所述调度层;
通过所述调度层接收所述请求任务以及所述请求任务对应的任务类型;
通过所述调度层根据所述请求任务对应的任务类型,调度所述请求任务的执行;
其中,所述任务类型是所述任务层根据所述请求任务的得分生成的,所述请求任务的得分是根据所述请求任务的本身属性的得分和权值、所述请求任务运行时占用的时间的得分和权值、以及所述请求任务运行时占用的资源的得分和权值计算得到的。
2.根据权利要求1所述的任务调度方法,其特征在于,所述任务请求携带有所述请求任务的优先级,
所述通过所述调度层根据所述请求任务对应的任务类型,调度所述请求任务的执行,包括:
通过所述调度层将所述请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;
通过所述调度层将所述待执行请求任务队列中的各个请求任务逐个投放至线程池中,从而通过操作系统逐个执行所述线程池中的任务;
当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层。
3.根据权利要求2所述的任务调度方法,其特征在于,所述通过所述调度层将所述待执行请求任务队列中的各个请求任务逐个投放至线程池中,包括:
通过所述调度层将所述待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中。
4.根据权利要求3所述的任务调度方法,其特征在于,所述任务类型包括第一任务类型和第二任务类型,所述第一任务类型表示所述请求任务是关键性任务;所述第二任务类型表示所述请求任务是非关键性任务,所述通过所述调度层将所述待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中,包括:
通过所述调度层检测所述待执行请求任务队列中的第i个请求任务的任务类型是所述第一任务类型还是所述第二任务类型;
若检测结果为任务类型是所述第一任务类型,则将所述待执行请求任务队列中的第i个请求任务投放至第一线程池中;
若检测结果为任务类型是所述第二任务类型,则将所述待执行请求任务队列中的第i个请求任务投放至第二线程池中;
其中i为大于等于1的正整数。
5.根据权利要求2至4任一所述的任务调度方法,其特征在于,所述任务请求携带有所述请求任务的回调函数,
所述当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层,包括:
当所述操作系统执行完所述请求任务之后,根据所述回调函数发送反馈信息至所述UI层。
6.一种任务调度装置,其特征在于,所述装置包括:
请求接收模块,用于通过调度层接收用户界面UI层发送的任务请求;
任务生成模块,用于通过所述调度层发送所述请求接收模块接收到的所述任务请求至任务层,使得所述任务层生成对应于所述任务请求的请求任务和所述请求任务对应的任务类型,并发送所述请求任务和所述请求任务对应的任务类型至所述调度层;
其中,所述任务类型是所述任务层根据所述请求任务的得分生成的,所述请求任务的得分是根据所述请求任务的本身属性的得分和权值、所述请求任务运行时占用的时间的得分和权值、以及所述请求任务运行时占用的资源的得分和权值计算得到的;
任务接收模块,用于通过所述调度层接收所述任务生成模块生成的所述请求任务以及所述请求任务对应的任务类型;
任务调度模块,用于通过所述调度层根据所述请求任务对应的任务类型,调度所述请求任务的执行。
7.根据权利要求6所述的任务调度装置,其特征在于,所述任务请求携带有所述请求任务的优先级,所述任务调度模块,包括:
任务插入单元,用于通过所述调度层将所述请求任务按照优先级由高到低的顺序插入到已有的待执行请求任务队列;
任务调度单元,用于通过所述调度层将所述任务插入单元得到的所述待执行请求任务队列中的各个请求任务逐个投放至线程池中;
任务执行单元,用于通过操作系统逐个执行所述线程池中的任务;
信息反馈单元,用于当所述操作系统执行完所述请求任务之后,发送反馈信息至所述UI层。
8.根据权利要求7所述的任务调度装置,其特征在于,
所述任务调度单元,还用于通过所述调度层将所述待执行请求任务队列中的各个请求任务按照各自的任务类型逐个投放到与所述任务类型对应的线程池中。
9.根据权利要求8所述的任务调度装置,其特征在于,所述任务类型包括第一任务类型和第二任务类型,所述第一任务类型表示所述请求任务是关键性任务;所述第二任务类型表示所述请求任务是非关键性任务,所述任务调度单元,包括:
任务检测子单元,用于通过所述调度层检测所述待执行请求任务队列中的第i个请求任务的任务类型是所述第一任务类型还是所述第二任务类型;
第一结果子单元,用于若所述任务检测子单元的检测结果为任务类型是所述第一任务类型,则将所述待执行请求任务队列中的第i个请求任务投放至第一线程池中;
第二结果子单元,用于若所述任务检测子单元的检测结果为任务类型是所述第二任务类型,则将所述待执行请求任务队列中的第i个请求任务投放至第二线程池中;
其中i为大于等于1的正整数。
10.根据权利要求7至9任一所述的任务调度装置,其特征在于,所述任务请求携带有所述请求任务的回调函数,
所述信息反馈单元,还用于当所述操作系统执行完所述请求任务之后,根据所述回调函数发送反馈信息至所述UI层。
11.一种终端,其特征在于,其包括如权利要求6至10任一所述的任务调度装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310091380.XA CN104063279B (zh) | 2013-03-20 | 2013-03-20 | 任务调度方法、装置和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310091380.XA CN104063279B (zh) | 2013-03-20 | 2013-03-20 | 任务调度方法、装置和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104063279A CN104063279A (zh) | 2014-09-24 |
CN104063279B true CN104063279B (zh) | 2018-12-28 |
Family
ID=51551002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310091380.XA Active CN104063279B (zh) | 2013-03-20 | 2013-03-20 | 任务调度方法、装置和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104063279B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371900B (zh) * | 2015-07-23 | 2020-06-05 | 腾讯科技(深圳)有限公司 | 一种实现异步调用的数据处理方法及装置 |
CN105159768A (zh) * | 2015-09-09 | 2015-12-16 | 浪潮集团有限公司 | 一种任务管理方法及云数据中心管理平台 |
CN105930208A (zh) * | 2016-04-01 | 2016-09-07 | 广州华多网络科技有限公司 | 一种线程调度方法及线程调度装置 |
CN106899649B (zh) * | 2016-06-30 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 一种任务请求处理方法、装置和用户设备 |
CN106155796A (zh) * | 2016-07-25 | 2016-11-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于队列的线程调度方法及装置 |
CN106502773B (zh) * | 2016-10-09 | 2019-12-03 | 武汉斗鱼网络科技有限公司 | 具有同步回调信息功能的数据异步处理方法及模块 |
CN106802826B (zh) * | 2016-12-23 | 2021-06-18 | 中国银联股份有限公司 | 一种基于线程池的业务处理方法及装置 |
CN106775990A (zh) * | 2016-12-31 | 2017-05-31 | 中国移动通信集团江苏有限公司 | 请求调度方法和装置 |
CN108628636A (zh) * | 2017-03-24 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 系统业务隔离的方法、装置、电子设备和可读存储介质 |
CN108388982B (zh) * | 2018-02-07 | 2020-08-21 | 阿里巴巴集团控股有限公司 | 任务的运行方法、装置和电子设备 |
CN108932119B (zh) * | 2018-07-01 | 2022-12-30 | 中电万维信息技术有限责任公司 | 一种基于android系统的项目分层方法 |
CN110728455B (zh) * | 2019-10-17 | 2021-07-30 | 京东数字科技控股有限公司 | 业务处理方法、业务处理装置、存储介质与电子设备 |
CN111260254B (zh) * | 2020-02-19 | 2022-07-26 | 中国人民解放军国防科技大学 | 面向动态到达任务的在线调度方法 |
CN112217990B (zh) * | 2020-09-27 | 2024-04-09 | 北京小米移动软件有限公司 | 任务调度方法、任务调度装置及存储介质 |
CN112488579A (zh) * | 2020-12-17 | 2021-03-12 | 上海亿保健康管理有限公司 | 任务指派方法及装置、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589442A (zh) * | 2001-10-05 | 2005-03-02 | Bea系统公司 | 用于与多重调度池进行消息接发的应用服务器的系统 |
CN101464810A (zh) * | 2008-12-31 | 2009-06-24 | 金蝶软件(中国)有限公司 | 服务程序处理方法及服务器 |
CN101933001A (zh) * | 2008-01-31 | 2010-12-29 | 雅虎公司 | 在集群系统中执行软件性能测试作业 |
CN102479097A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院声学研究所 | 一种支持多级加载的安全嵌入式操作系统 |
CN102831494A (zh) * | 2012-07-23 | 2012-12-19 | 北京星网锐捷网络技术有限公司 | 调度方法、设备及系统 |
-
2013
- 2013-03-20 CN CN201310091380.XA patent/CN104063279B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1589442A (zh) * | 2001-10-05 | 2005-03-02 | Bea系统公司 | 用于与多重调度池进行消息接发的应用服务器的系统 |
CN101933001A (zh) * | 2008-01-31 | 2010-12-29 | 雅虎公司 | 在集群系统中执行软件性能测试作业 |
CN101464810A (zh) * | 2008-12-31 | 2009-06-24 | 金蝶软件(中国)有限公司 | 服务程序处理方法及服务器 |
CN102479097A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院声学研究所 | 一种支持多级加载的安全嵌入式操作系统 |
CN102831494A (zh) * | 2012-07-23 | 2012-12-19 | 北京星网锐捷网络技术有限公司 | 调度方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104063279A (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104063279B (zh) | 任务调度方法、装置和终端 | |
CN103870314B (zh) | 一种单节点同时运行不同类型虚拟机的方法及系统 | |
Gu et al. | Liquid: Intelligent resource estimation and network-efficient scheduling for deep learning jobs on distributed GPU clusters | |
CN109992407B (zh) | 一种yarn集群gpu资源调度方法、装置和介质 | |
CN102469126B (zh) | 一种应用调度系统、方法和相关装置 | |
CN105389206B (zh) | 一种云计算数据中心虚拟机资源快速配置方法 | |
CN104035818A (zh) | 多任务调度的方法及装置 | |
CN105892996A (zh) | 一种批量数据处理的流水线作业方法及装置 | |
CN103268258B (zh) | 一种卫星地面遥控发令安全控制方法 | |
CN108182108A (zh) | 一种定时任务集群及其执行方法 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
CN105183547B (zh) | 一种用户界面的任务调度方法和装置 | |
CN102508717B (zh) | 一种应用于多核处理器的内存调度方法及装置 | |
CN109917705B (zh) | 一种多任务调度方法 | |
CN109992403A (zh) | 多租户资源调度的优化方法、装置、终端设备及存储介质 | |
CN106528288A (zh) | 一种资源管理方法、装置和系统 | |
CN103235744A (zh) | 一种智能电视的应用资源管理系统 | |
CN113608834A (zh) | 一种基于超融合的资源调度方法、装置、设备及可读介质 | |
CN113886034A (zh) | 任务调度方法、系统、电子设备及存储介质 | |
CN114968566A (zh) | 一种面向共享式gpu集群下的容器调度方法及装置 | |
CN104090826B (zh) | 基于相关性的任务优化部署方法 | |
CN110764887A (zh) | 任务重调度方法、系统及相关设备、装置 | |
CN107656804B (zh) | 进程池系统及方法 | |
CN109491780A (zh) | 多任务调度方法及装置 | |
CN106293917A (zh) | 一种IO调度cfq算法的优化方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230920 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |