CN112395067A - 任务调度方法、系统、设备及介质 - Google Patents

任务调度方法、系统、设备及介质 Download PDF

Info

Publication number
CN112395067A
CN112395067A CN202011416121.6A CN202011416121A CN112395067A CN 112395067 A CN112395067 A CN 112395067A CN 202011416121 A CN202011416121 A CN 202011416121A CN 112395067 A CN112395067 A CN 112395067A
Authority
CN
China
Prior art keywords
task
service time
executed
task scheduling
scheduling queue
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.)
Pending
Application number
CN202011416121.6A
Other languages
English (en)
Inventor
沈亮亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202011416121.6A priority Critical patent/CN112395067A/zh
Publication of CN112395067A publication Critical patent/CN112395067A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明涉及金融科技(Fintech)技术领域,公开了一种任务调度方法,包括:接收对第一任务的执行请求,获取第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;基于第一任务的服务时间与各个待执行任务的服务时间,按照服务时间的大小对第一任务和各个待执行任务进行排序,得到新的任务调度队列,按照服务时间的大小依次执行新的任务调度队列中的任务,服务时间越小的任务在新的任务调度队列中越靠近队头。通过在新任务到达时,根据任务的服务时间对任务执行顺序进行重排,重排时从任务调度队列的队头到队尾按照服务时间从小到大的顺序排列,保证服务时间最短的任务优先被执行,从而降低任务的平均等待时间。

Description

任务调度方法、系统、设备及介质
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及任务调度方法、系统、设备及计算机存储介质。
背景技术
随着计算机技术的发展,越来越多的技术(大数据、分布式、人工智能等)应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、通用性要求,也对任务调度技术提出了更高的要求。
在应用程式中,为了提高系统的吞吐量,多会采用队列的技术进行数据的传输,队列即存在先进先出,或是先进后出的机制,以队列的先进先出机制来说,入队的第一个元素,必然也会第一个出队,优先进行后续的数据处理,待处理完后下一个元素出队,后续元素以此类推。
现有技术中,任务调度的思路是每次调度从就绪队列中选择一个最先进入该队列的任务,使之投入运行,该任务一直运行到完成或发生某事件而阻塞后才放弃优先权,进而从剩余就绪队列中再选择一个最先进入该队列的任务,使之投入运行。但是,由于每个任务(除了第一个)都会存在等待时间的可能性,这种以任务请求到达时间的先后顺序逐条执行各个任务请求的方案可能会导致任务的平均等待时间过长,进而导致系统吞吐量降低。
发明内容
本发明的主要目的在于提出一种任务调度方法、系统、设备及计算机存储介质,旨在降低任务的平均等待时间。
为实现上述目的,本发明提供一种任务调度方法,所述任务调度方法包括如下步骤:
接收对第一任务的执行请求,获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;
基于所述第一任务的服务时间与各个所述待执行任务的服务时间,按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列,按照服务时间的大小依次执行所述新的任务调度队列中的任务,其中,服务时间越小的任务在新的任务调度队列中越靠近队头。
可选地,所述按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列的步骤包括:
确定所述第一任务和所述待执行任务中是否存在服务时间相同的第二任务;
若存在,则按照服务时间的大小对所述第二任务与其他任务进行排序,并按照所述第二任务的任务请求时间的先后顺序对所述第二任务进行排序,得到新的任务调度队列。
可选地,所述接收对第一任务的执行请求的步骤之后,还包括:
确定任务调度队列中是否存在未出队的任务以及是否存在正在被执行的任务;
若任务调度队列中不存在未出队的任务且不存在正在被执行的任务,则执行所述第一任务;
若任务调度队列中存在未出队的任务,和/或,存在正在被执行的任务,则执行步骤:获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间。
可选地,所述按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列的步骤之后,还包括:
对所述新的任务调度队列中的各个任务的等待时间进行监测;
将所述等待时间大于或者等于预设时长阈值的任务调整至所述新的任务调度队列的队头。
可选地,所述按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列的步骤之后,还包括:
对所述新的任务调度队列中的各个任务的等待时间进行监测;
根据所述各个任务的等待时间以及服务时间确定各个任务的响应比;
将所述响应比大于或者等于预设响应比阈值的任务调整至所述新的任务调度队列的队头。
可选地,所述接收对第一任务的执行请求的步骤之后,还包括:
获取所述第一任务的服务时间以及当前执行任务的剩余服务时间;
确定所述第一任务的服务时间是否大于或者等于所述当前执行任务的剩余服务时间;
若是,则执行步骤:获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;
若否,则暂停实行所述当前执行任务,执行第一任务,按照所述当前执行任务的剩余服务时间、任务调度队列中各个待执行任务的服务时间对所述当前执行任务和各个所述待执行任务进行排序,得到新的任务调度队列。
可选地,所述按照所述新的任务调度队列依次执行任务的步骤之后,还包括:
获取执行所述新的任务调度队列中的各个任务的实际执行时间,计算各个任务的所述实际执行时间和服务时间的差值的绝对值;
将所述绝对值大于或者等于预设阈值的任务对应的请求方列入任务调度黑名单;
在再次接收到所述请求方对第二任务的执行请求时,将所述第二任务插入并保持在当前任务调度队列的队尾。
此外,为实现上述目的,本发明还提供一种任务调度系统,所述任务调度系统包括:
服务时间获取模块,用于接收对第一任务的执行请求,获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;
任务排序模块,用于基于所述第一任务的服务时间与各个所述待执行任务的服务时间,按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列,按照服务时间的大小依次执行所述新的任务调度队列中的任务,其中,服务时间越小的任务在新的任务调度队列中越靠近队头。
此外,为实现上述目的,本发明还提供一种任务调度设备,所述任务调度设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务调度程序,所述任务调度程序被所述处理器执行时实现如上所述的任务调度方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机存储介质,所述计算机存储介质上存储有任务调度程序,所述任务调度程序被处理器执行时实现如上所述的任务调度方法的步骤。
本发明通过接收对第一任务的执行请求,获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;基于所述第一任务的服务时间与各个所述待执行任务的服务时间,按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列,按照服务时间的大小依次执行所述新的任务调度队列中的任务,其中,服务时间越小的任务在新的任务调度队列中越靠近队头。
通过在新的任务到达时,根据所有任务的服务时间对任务调度队列中各个任务的顺序进行重排,重排时遵守从任务调度队列的队头到队尾按照服务时间从小到大的顺序排列,如此可以保证服务时间最短的任务优先被执行,进而降低所有任务的平均等待时间,提升系统的吞吐量。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的任务调度设备结构示意图;
图2为本发明任务调度方法第一实施例的流程示意图;
图3为现有任务调度方案的一示意图;
图4为本发明任务调度方法的一示意图;
图5为本发明任务调度系统的系统模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的任务调度设备结构示意图。
本发明实施例任务调度设备可以是PC机或服务器设备,其上运行有虚拟机。
如图1所示,该任务调度设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的任务调度设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及任务调度程序。
在图1所示的任务调度设备中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的任务调度程序,并执行下述任务调度方法中的操作。
基于上述硬件结构,提出本发明任务调度方法实施例。
参照图2,图2为本发明任务调度方法第一实施例的流程示意图,所述方法包括:
步骤S10,接收对第一任务的执行请求,获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;
本实施例任务调度方法运用于任务调度设备中,任务调度设备可以是终端、机器人或者PC设备。
现有技术中,任务调度的思路是每次调度从就绪队列中选择一个最先进入该队列的任务,使之投入运行,该任务一直运行到完成或发生某事件而阻塞后才放弃优先权,进而从剩余就绪队列中再选择一个最先进入该队列的任务,使之投入运行。但是,由于每个任务(除了第一个)都会存在等待时间的可能性,这种以任务请求到达时间的先后顺序逐条执行各个任务请求的方案可能会导致任务的平均等待时间过长,进而导致系统吞吐量降低。
在此背景下,本实施例为追求更少的平均等待时间,通过在新的任务到达时,根据所有任务的服务时间对任务调度队列中各个任务的顺序进行重排,重排时遵守从任务调度队列的队头到队尾按照服务时间从小到大的顺序排列,如此可以保证服务时间最短的任务优先被执行,进而降低所有任务的平均等待时间。
在本实施例中,在接收到任务请求方对第一任务的执行请求时,即,在新的任务到达时,任务调度设备会获取第一任务的服务时间以及当前的任务调度队列中各个待执行任务的服务时间。其中,服务时间指的是从任务开始执行到任务执行完成所需要的时间,每个任务的服务时间可能相同也可能不同。
服务时间有多种获取方式,一种是由任务请求方提供服务时间,并将服务时间随执行请求一并发送给任务调度设备,任务调度设备能够在接收到对各个任务的执行请求时,获取到任务的服务时间;另一种则是由任务调度设备根据每个任务的历史执行情况,统计每个任务的历史执行时间,然后计算得到的每个任务对应的历史执行时间的平均值,接收对第一任务的执行请求,则获取第一任务的历史执行时间的平均值,作为第一任务的服务时间;当然,还可以根据任务类型来获取服务时间,即,由任务调度设备根据每个任务的历史执行情况,统计每个任务的历史执行时间,然后计算得到的每个任务对应的任务类型的历史执行时间的平均值,接收对第一任务的执行请求,则获取第一任务对应的任务类型的历史执行时间的平均值,作为第一任务的服务时间。本实施例不对服务时间的具体获取方式做限制。
其中,任务调度队列主要用于依次执行一系列的异步任务,任务调度队列中的任务能够按照从队头到队尾的顺序依次被执行。
进一步地,在上述接收对第一任务的执行请求的步骤之后,还包括:
步骤a1,确定任务调度队列中是否存在未出队的任务以及是否存在正在被执行的任务;
步骤a2,若任务调度队列中不存在未出队的任务且不存在正在被执行的任务,则执行所述第一任务;
若任务调度队列中存在未出队的任务,和/或,存在正在被执行的任务,则执行步骤:获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间。
在本实施例中,任务调度设备在接收对第一任务的执行请求后,首先需要确定该第一任务是否不需要参与排队而能被直接执行。具体地,确定任务调度队列中是否存在未出队的任务以及是否存在正在被执行的任务,其中,任务调度队列中存在未出队的任务,说明在第一任务到达时,尚有其他待执行任务在等待被执行,此时,需要根据服务时间对第一任务和任务调度队列中的各个待执行任务进行顺序重排;存在正在被执行的任务,说明在第一任务到达时,尚有其他任务正在被执行,此时,需要根据服务时间对第一任务和任务调度队列中的各个待执行任务进行顺序重排,需要说明的是,任务调度队列中的任务在被执行时,该任务将会从任务调度队列中删除,即出队;只有在确定任务调度队列中不存在未出队的任务且不存在正在被执行的任务,才直接执行第一任务。
本实施例能够在确定没有其他正在被执行的和等待被执行的任务时,直接执行第一任务,保证新到达任务执行的及时性。
步骤S20,基于所述第一任务的服务时间与各个所述待执行任务的服务时间,按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列,按照服务时间的大小依次执行所述新的任务调度队列中的任务,其中,服务时间越小的任务在新的任务调度队列中越靠近队头。
在本实施例中,在获取到新到达的任务,即第一任务的服务时间以及各个待执行任务的服务时间后,按照服务时间从小到大的顺序对所有任务进行排序,根据排序结果确定新的任务调度队列,服务时间越小的任务在新的任务调度队列中越靠近队头,服务时间越大的任务在新的任务调度队列中越靠近队尾,由于任务调度队列中的任务是按照从队头到队尾的顺序依次被执行的,因此,本实施例通过上述重排任务调度队列的方式,能够保证服务时间较小的任务优先被执行,进而相较于现有任务调度方式降低所有任务的平均等待时间。
为辅助理解,现列举一实例,现有P1、P2、P3三个任务,P1的任务请求时间为0,服务时间为7;P2的任务请求时间为2,服务时间为4;P3的任务请求时间为4,服务时间为1。按照现有技术中的以任务请求到达时间的先后顺序逐条执行各个任务的方案,任务执行顺序为P1、P2、P3,P1最先到达最先执行,则P1的等待时间为0,P2的等待时间为7-2=5,P3的等待时间为(7+4)-4=7,则平均等待时间为(0+5+7)/3=4;而按照本实施例中的以服务时间的大小执行任务的方案,任务执行顺序为P1、P3、P2,具体原因为,P1最先到达依旧最先执行,因此,P1的等待时间为0;P2虽然请求时间是2,但此时P1仍未完成,待P1执行完成后的时间点是7,此时P2和P3均已到达,则按照服务时间的大小排序,P3的服务时间小于P1的服务时间,则P3在P1执行完成后优先执行,所以P3的等待时间为7-4=3;P2的等待时间为:(7+1)-2=6,则平均等待时间为(0+3+6)/3=3,可见,通过本实施例的任务调度方案能够降低任务的平均等待时间。
进一步地,上述按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列的步骤包括:
步骤b1,确定所述第一任务和所述待执行任务中是否存在服务时间相同的第二任务;
步骤b2,若存在,则按照服务时间的大小对所述第二任务与其他任务进行排序,并按照所述第二任务的任务请求时间的先后顺序对所述第二任务进行排序,得到新的任务调度队列。
在本实施例中,在对任务调度队列进行重排时,首先确定第一任务和待执行任务中是否存在服务时间相同的任务,即第二任务,若不存在,则直接按照服务时间的大小对这些任务进行排序;若存在,则对于第二任务与其他任务依然按照服务时间的大小进行排序,但对于服务时间相同的第二任务,则按照任务请求时间的先后顺序对其进行排序,任务请求时间越早的任务在新的任务调度队列中越靠近队头。
为辅助理解,现列举一实例,现有P1、P2、P3、P4四个任务,P1的任务请求时间为0,服务时间为7;P2的任务请求时间为2,服务时间为4;P3的任务请求时间为4,服务时间为1;P4的任务请求时间为5,服务时间为4。按照现有技术中的以任务请求到达时间的先后顺序逐条执行各个任务的方案,参见图3,任务执行顺序为P1、P2、P3、P4,P1最先到达最先执行,则P1的等待时间为0,P2的等待时间为7-2=5,P3的等待时间为(7+4)-4=7,P4的等待时间为(7+4+1)-5=7,则平均等待时间为(0+5+7+7)/4=4.75;而按照本实施例中的以服务时间的大小执行任务的方案,参见图4,任务执行顺序为P1、P3、P2、P4,具体原因为,P1最先到达依旧最先执行,因此,P1的等待时间为0;P2虽然请求时间是2,但此时P1仍未完成,待P1执行完成后的时间点是7,此时P2、P3和P4均已到达,则按照服务时间的大小排序,P3的服务时间小于P2和P4的服务时间,则P3在P1执行完成后优先执行,所以P3的等待时间为7-4=3;P2与P4的服务时间相同,则对于P2和P4,优先执行任务请求时间在先的,因此先执行P2,再执行P4,所以P2的等待时间为(7+1)-2=6;P4的等待时间为(7+1+4)-5=7,则平均等待时间为(0+3+6+7)/4=4,可见,通过本实施例的任务调度方案能够降低任务的平均等待时间。
本实施例通过上述方式,优先按照服务时间进行对任务进行排序,对于服务时间相同的任务按照任务请求时间进行排序,能够保证服务时间相同的任务执行的有序性,对于服务时间相同的任务,优先执行等待时间较久的任务,即任务请求时间较早的任务,从而能够避免请求方长时间等待。
在本实施例中,通过接收对第一任务的执行请求,获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;基于所述第一任务的服务时间与各个所述待执行任务的服务时间,按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列,按照服务时间的大小依次执行所述新的任务调度队列中的任务,其中,服务时间越小的任务在新的任务调度队列中越靠近队头。
通过在新的任务到达时,根据所有任务的服务时间对任务调度队列中各个任务的顺序进行重排,重排时遵守从任务调度队列的队头到队尾按照服务时间从小到大的顺序排列,如此可以保证服务时间最短的任务优先被执行,进而降低所有任务的平均等待时间,提升系统的吞吐量。
进一步地,基于本发明任务调度方法第一实施例,提出本发明任务调度方法第二实施例。上述按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列的步骤之后,还包括:
步骤c1,对所述新的任务调度队列中的各个任务的等待时间进行监测;
步骤c2,将所述等待时间大于或者等于预设时长阈值的任务调整至所述新的任务调度队列的队头。
对于上述实施例,若在任务调度队列中服务时间较长的任务被执行之前,一直源源不断地有比该任务的服务时间短的任务到达,可能会使该任务长时间排队,无法被执行,导致该任务的等待时间过长,用户满意度降低。其中,所谓等待时间,即任务被执行的开始时间与任务请求时间的差值。
针对这种情况,本实施例在按照服务时间的大小对任务执行顺序进行重排之后,会对任务调度队列中每个任务的等待时间进行监测,并将等待时间与预设时长阈值进行比较,将等待时间大于或者等于预设时长阈值的任务调整至任务调度队列的队头,以使等待时间过长的任务能够优先被执行,避免无限期等待的情况发生,提升这种长服务时间的任务的请求方的满意度。
可以理解的是,若等待时间大于或者等于预设时长阈值的任务有多个,则优先执行等待时间较久的任务,即任务请求时间较早的任务。
进一步地,所述按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列的步骤之后,还包括:
步骤d1,对所述新的任务调度队列中的各个任务的等待时间进行监测;
步骤d2,根据所述各个任务的等待时间以及服务时间确定各个任务的响应比;
步骤d3,将所述响应比大于或者等于预设响应比阈值的任务调整至所述新的任务调度队列的队头。
针对上述长服务时间的任务可能出现的无限期等待的情况,在本实施例中,会对任务调度队列中每个任务的等待时间进行监测,并根据等待时间、服务时间以及预设响应比公式确定每个任务的响应比,其中,预设响应比公式为R=(Tw+Ts)/Ts,其中,R为任务的响应比;Tw为等待时间;Ts为服务时间。
再将响应比与预设响应比阈值进行比较,将响应比大于或者等于预设响应比阈值的任务调整至任务调度队列的队头,响应比综合考虑了任务的等待时间和服务时间,在等待时间相同时,服务时间越小的响应比越大,越优先被执行;服务时间相同时,等待时间越长的响应比越大,越优先被执行,以使等待时间过长、服务时间小的任务能够优先被执行。
进一步地,上述步骤S10中,接收对第一任务的执行请求的步骤之后,还包括
步骤e1,获取所述第一任务的服务时间以及当前执行任务的剩余服务时间;
步骤e2,确定所述第一任务的服务时间是否大于或者等于所述当前执行任务的剩余服务时间;
步骤e3,若否,则暂停实行所述当前执行任务,执行第一任务,按照所述当前执行任务的剩余服务时间、任务调度队列中各个待执行任务的服务时间对所述当前执行任务和各个所述待执行任务进行排序,得到新的任务调度队列;
若是,则执行步骤:获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间。
在本实施例中,在接收到对第一任务的执行请求时,获取第一任务的服务时间以及当前执行任务的剩余服务时间,确定第一任务的服务时间是否大于或者等于当前执行任务的剩余服务时间,若第一任务的服务时间大于或者等于当前执行任务的剩余服务时间,则执行步骤:获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间,即按照第一实施例对任务调度队列进行重排。其中,剩余服务时间指的是从当前时间起还需要多久才能完成当前执行任务的执行。
在第一任务的服务时间小于当前执行任务的剩余服务时间时,则暂停执行当前执行任务,执行第一任务,并根据当前执行任务的剩余服务时间与任务调度队列中各个待执行任务的服务时间,对当前执行任务与各个待执行任务进行排序,得到新的任务调度队列,新的任务调度队列的从队头到队尾按照服务时间从小到大的顺序排列,再按照新的任务调度队列的顺序依次执行任务。
本实施例可以在服务时间较长的任务在被执行时,若有服务时间较短的任务到达,且该服务时间较短的任务的服务时间小于当前执行任务的剩余服务时间,优先立即执行该服务时间较短的任务,避免该短任务长时间等待,同时也避免同一任务长时间占用CPU。
进一步地,所述按照所述新的任务调度队列依次执行任务的步骤之后,还包括:
步骤f1,获取执行所述新的任务调度队列中的各个任务的实际执行时间,计算各个任务的所述实际执行时间和服务时间的差值的绝对值;
步骤f2,将所述绝对值大于或者等于预设阈值的任务对应的请求方列入任务调度黑名单;
步骤f3,在再次接收到所述请求方对第二任务的执行请求时,将所述第二任务插入并保持在当前任务调度队列的队尾。
在本实施例中,针对服务时间是由请求方自行提供的情况,在按照新的任务调度队列依次执行任务过程中,任务调度设备会对每一任务的实际执行时间进行记录,以根据任务的实际执行时间和服务时间计算二者差值的绝对值,若该绝对值大于预设阈值,说明任务的请求方提供的服务时间准确度过低,进而说明请求方的可信度较低,为避免后续由于该请求方提供的准确度较低的服务时间影响到其他请求方任务的正常调度,可将绝对值大于或者等于预设阈值的任务对应的请求方列入任务调度黑名单,以在再次接收到命中该任务调度黑名单的请求方对第二任务的执行请求时,将该第二任务插入并保持在当前任务调度队列的队尾,即,该第二任务保持最低优先级,而不考虑该第二任务的服务时间。
当然,在将绝对值大于或者等于预设阈值的任务对应的请求方列入任务调度黑名单时,可向对应的请求方发送低信用警告提示。
在本实施例中,通过设置调度黑名单,能够防止请求方随意设置服务时间,影响根据服务时间进行任务调度的正常进行。
本发明还提供一种任务调度系统,参照图5,所述任务调度系统包括:
服务时间获取模块10,用于接收对第一任务的执行请求,获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;
任务排序模块20,用于基于所述第一任务的服务时间与各个所述待执行任务的服务时间,按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列,按照服务时间的大小依次执行所述新的任务调度队列中的任务,其中,服务时间越小的任务在新的任务调度队列中越靠近队头。
可选地,所述任务排序模块,还用于:
确定所述第一任务和所述待执行任务中是否存在服务时间相同的第二任务;
若存在,则按照服务时间的大小对所述第二任务与其他任务进行排序,并按照所述第二任务的任务请求时间的先后顺序对所述第二任务进行排序,得到新的任务调度队列。
可选地,所述服务时间获取模块,还用于:
确定任务调度队列中是否存在未出队的任务以及是否存在正在被执行的任务;
若任务调度队列中不存在未出队的任务且不存在正在被执行的任务,则执行所述第一任务;
若任务调度队列中存在未出队的任务,和/或,存在正在被执行的任务,则执行步骤:获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间。
可选地,所述任务排序模块,还用于:
对所述新的任务调度队列中的各个任务的等待时间进行监测;
将所述等待时间大于或者等于预设时长阈值的任务调整至所述新的任务调度队列的队头。
可选地,所述任务排序模块,还用于:
对所述新的任务调度队列中的各个任务的等待时间进行监测;
根据所述各个任务的等待时间以及服务时间确定各个任务的响应比;
将所述响应比大于或者等于预设响应比阈值的任务调整至所述新的任务调度队列的队头。
可选地,所述服务时间获取模块,还用于:
获取所述第一任务的服务时间以及当前执行任务的剩余服务时间;
确定所述第一任务的服务时间是否大于或者等于所述当前执行任务的剩余服务时间;
若是,则执行步骤:获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;
若否,则暂停实行所述当前执行任务,执行第一任务,按照所述当前执行任务的剩余服务时间、任务调度队列中各个待执行任务的服务时间对所述当前执行任务和各个所述待执行任务进行排序,得到新的任务调度队列。
可选地,所述任务排序模块,还用于:
获取执行所述新的任务调度队列中的各个任务的实际执行时间,计算各个任务的所述实际执行时间和服务时间的差值的绝对值;
将所述绝对值大于或者等于预设阈值的任务对应的请求方列入任务调度黑名单;
在再次接收到所述请求方对第二任务的执行请求时,将所述第二任务插入并保持在当前任务调度队列的队尾。
上述各程序单元所执行的方法可参照本发明任务调度方法各个实施例,此处不再赘述。
本发明还提供一种任务调度设备,任务调度设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的任务调度程序,任务调度程序被处理器执行时所实现的方法可参照本发明任务调度方法各个实施例,此处不再赘述。
本发明还提供一种计算机存储介质。
本发明计算机存储介质上存储有任务调度程序,所述任务调度程序被处理器执行时实现如上所述的任务调度方法的步骤。
其中,在所述处理器上运行的任务调度程序被执行时所实现的方法可参照本发明任务调度方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种任务调度方法,其特征在于,所述任务调度方法包括如下步骤:
接收对第一任务的执行请求,获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;
基于所述第一任务的服务时间与各个所述待执行任务的服务时间,按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列,按照服务时间的大小依次执行所述新的任务调度队列中的任务,其中,服务时间越小的任务在新的任务调度队列中越靠近队头。
2.如权利要求1所述的任务调度方法,其特征在于,所述按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列的步骤包括:
确定所述第一任务和所述待执行任务中是否存在服务时间相同的第二任务;
若存在,则按照服务时间的大小对所述第二任务与其他任务进行排序,并按照所述第二任务的任务请求时间的先后顺序对所述第二任务进行排序,得到新的任务调度队列。
3.如权利要求1所述的任务调度方法,其特征在于,所述接收对第一任务的执行请求的步骤之后,还包括:
确定任务调度队列中是否存在未出队的任务以及是否存在正在被执行的任务;
若任务调度队列中不存在未出队的任务且不存在正在被执行的任务,则执行所述第一任务;
若任务调度队列中存在未出队的任务,和/或,存在正在被执行的任务,则执行步骤:获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间。
4.如权利要求1所述的任务调度方法,其特征在于,所述按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列的步骤之后,还包括:
对所述新的任务调度队列中的各个任务的等待时间进行监测;
将所述等待时间大于或者等于预设时长阈值的任务调整至所述新的任务调度队列的队头。
5.如权利要求1所述的任务调度方法,其特征在于,所述按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列的步骤之后,还包括:
对所述新的任务调度队列中的各个任务的等待时间进行监测;
根据所述各个任务的等待时间以及服务时间确定各个任务的响应比;
将所述响应比大于或者等于预设响应比阈值的任务调整至所述新的任务调度队列的队头。
6.如权利要求1所述的任务调度方法,其特征在于,所述接收对第一任务的执行请求的步骤之后,还包括:
获取所述第一任务的服务时间以及当前执行任务的剩余服务时间;
确定所述第一任务的服务时间是否大于或者等于所述当前执行任务的剩余服务时间;
若是,则执行步骤:获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;
若否,则暂停实行所述当前执行任务,执行第一任务,按照所述当前执行任务的剩余服务时间、任务调度队列中各个待执行任务的服务时间对所述当前执行任务和各个所述待执行任务进行排序,得到新的任务调度队列。
7.如权利要求1至6任一项所述的任务调度方法,其特征在于,所述按照所述新的任务调度队列依次执行任务的步骤之后,还包括:
获取执行所述新的任务调度队列中的各个任务的实际执行时间,计算各个任务的所述实际执行时间和服务时间的差值的绝对值;
将所述绝对值大于或者等于预设阈值的任务对应的请求方列入任务调度黑名单;
在再次接收到所述请求方对第二任务的执行请求时,将所述第二任务插入并保持在当前任务调度队列的队尾。
8.一种任务调度系统,其特征在于,所述任务调度系统包括:
服务时间获取模块,用于接收对第一任务的执行请求,获取所述第一任务的服务时间以及任务调度队列中各个待执行任务的服务时间;
任务排序模块,用于基于所述第一任务的服务时间与各个所述待执行任务的服务时间,按照服务时间的大小对所述第一任务和各个所述待执行任务进行排序,得到新的任务调度队列,按照服务时间的大小依次执行所述新的任务调度队列中的任务,其中,服务时间越小的任务在新的任务调度队列中越靠近队头。
9.一种任务调度设备,其特征在于,所述任务调度设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的任务调度程序,所述任务调度程序被所述处理器执行时实现如权利要求1至7中任一项所述的任务调度方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有任务调度程序,所述任务调度程序被处理器执行时实现如权利要求1至7中任一项所述的任务调度方法的步骤。
CN202011416121.6A 2020-12-04 2020-12-04 任务调度方法、系统、设备及介质 Pending CN112395067A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011416121.6A CN112395067A (zh) 2020-12-04 2020-12-04 任务调度方法、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011416121.6A CN112395067A (zh) 2020-12-04 2020-12-04 任务调度方法、系统、设备及介质

Publications (1)

Publication Number Publication Date
CN112395067A true CN112395067A (zh) 2021-02-23

Family

ID=74605115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011416121.6A Pending CN112395067A (zh) 2020-12-04 2020-12-04 任务调度方法、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN112395067A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220428A (zh) * 2021-04-23 2021-08-06 复旦大学 针对云计算系统实时性需求的动态任务调度算法
CN113806058A (zh) * 2021-10-09 2021-12-17 京东科技控股股份有限公司 任务管理方法及装置、存储介质及电子设备
CN115238320A (zh) * 2022-09-26 2022-10-25 国网山东省电力公司五莲县供电公司 一种电力数据存储管理方法
CN117032993A (zh) * 2023-10-08 2023-11-10 麒麟软件有限公司 任务调度方法
WO2024000859A1 (zh) * 2022-06-28 2024-01-04 深圳前海微众银行股份有限公司 一种作业调度方法、作业调度装置、作业调度系统及存储介质
CN117806261A (zh) * 2024-02-29 2024-04-02 佛山慧谷科技股份有限公司 一种石材磨抛队列管理系统及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220428A (zh) * 2021-04-23 2021-08-06 复旦大学 针对云计算系统实时性需求的动态任务调度算法
CN113220428B (zh) * 2021-04-23 2022-06-21 复旦大学 针对云计算系统实时性需求的动态任务调度方法
CN113806058A (zh) * 2021-10-09 2021-12-17 京东科技控股股份有限公司 任务管理方法及装置、存储介质及电子设备
WO2024000859A1 (zh) * 2022-06-28 2024-01-04 深圳前海微众银行股份有限公司 一种作业调度方法、作业调度装置、作业调度系统及存储介质
CN115238320A (zh) * 2022-09-26 2022-10-25 国网山东省电力公司五莲县供电公司 一种电力数据存储管理方法
CN117032993A (zh) * 2023-10-08 2023-11-10 麒麟软件有限公司 任务调度方法
CN117032993B (zh) * 2023-10-08 2024-04-05 麒麟软件有限公司 任务调度方法
CN117806261A (zh) * 2024-02-29 2024-04-02 佛山慧谷科技股份有限公司 一种石材磨抛队列管理系统及方法
CN117806261B (zh) * 2024-02-29 2024-05-28 佛山慧谷科技股份有限公司 一种石材磨抛队列管理系统及方法

Similar Documents

Publication Publication Date Title
CN112395067A (zh) 任务调度方法、系统、设备及介质
CN110096353B (zh) 任务调度方法及装置
US7076781B2 (en) Resource reservation for large-scale job scheduling
US8868855B2 (en) Request management system and method for dynamically managing prioritized requests
CN109451020B (zh) 超时管理方法、设备及计算机可读存储介质
CN111193796B (zh) 基于延迟队列的会话保持方法、服务器及可读存储介质
CN111061556A (zh) 执行优先级任务的优化方法、装置、计算机设备及介质
CN111221638B (zh) 并发任务的调度处理方法、装置、设备和介质
CN111628940A (zh) 流量调度方法、设备、系统、交换机及计算机存储介质
CN111506406A (zh) 工作流调度方法、装置、系统与计算机可读存储介质
CN113722056A (zh) 任务调度方法、装置、电子设备和计算机可读介质
CN109491775B (zh) 一种用于边缘计算环境下的任务处理与调度方法
CN110413210B (zh) 用于处理数据的方法、设备和计算机程序产品
CN113051064B (zh) 任务调度方法、装置、设备及存储介质
EP2477112A1 (en) Method for efficient scheduling in a resource-sharing system
CN113342497A (zh) 任务调度方法、装置、终端设备及计算机存储介质
CN110784478B (zh) 超时时长的调整方法、装置、设备及计算机可读存储介质
CN109684274B (zh) 文件归档方法、设备及计算机可读存储介质
CN116820769A (zh) 一种任务分配方法、装置及系统
US20040010551A1 (en) Method and apparatus for automated network polling
WO2020067872A1 (en) A method of prioritizing message handling in a publisher/subscriber broker
CN116089033A (zh) 一种基于多级异构动态队列的任务调度方法
US8151274B2 (en) Task management system
JP3713977B2 (ja) リアルタイム分散システム
CN115766612A (zh) 一种基于权重转换概率的调度方法及相应的装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination