CN106775977A - 任务调度方法、装置及系统 - Google Patents

任务调度方法、装置及系统 Download PDF

Info

Publication number
CN106775977A
CN106775977A CN201611130149.7A CN201611130149A CN106775977A CN 106775977 A CN106775977 A CN 106775977A CN 201611130149 A CN201611130149 A CN 201611130149A CN 106775977 A CN106775977 A CN 106775977A
Authority
CN
China
Prior art keywords
task
scheduler
treat
scheduler task
scheduling
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.)
Granted
Application number
CN201611130149.7A
Other languages
English (en)
Other versions
CN106775977B (zh
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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201611130149.7A priority Critical patent/CN106775977B/zh
Publication of CN106775977A publication Critical patent/CN106775977A/zh
Application granted granted Critical
Publication of CN106775977B publication Critical patent/CN106775977B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开是关于一种任务调度方法、装置及系统。该方法包括:接收并存储各项待调度任务;将满足预设条件的各项待调度任务加入第一任务队列;将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列;对所述第二任务队列中的各项待调度任务进行调度。本公开的任务调度方法、装置及系统,采用无中心模式的任务调度装置,能够将各项待调度任务调度至分布式的任务执行装置中进行执行,支持负载均衡,且具有较高的可用性、并发性和实时性。

Description

任务调度方法、装置及系统
技术领域
本公开涉及计算机技术领域,尤其涉及一种任务调度方法、装置及系统。
背景技术
相关技术中,调度器可以用于确定待执行任务的执行顺序。随着数据平台的数据处理量增加,为了能够在某些特定时间段内分析特定数据,往往需要用到大量的定时任务。这些定时任务至关重要,需要提高这些定时任务的可用性及并发性。
发明内容
为克服相关技术中存在的问题,本公开提供一种任务调度方法、装置及系统。
根据本公开实施例的第一方面,提供一种任务调度方法,包括:
接收并存储各项待调度任务;
将满足预设条件的各项待调度任务加入第一任务队列;
将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列;
对所述第二任务队列中的各项待调度任务进行调度。
对于上述的方法,在一种可能的实现方式中,接收并存储各项待调度任务,包括:
接收任务请求,所述任务请求包括所述待调度任务和所述待调度任务对应的优先级和/或请求执行时间;
按照所述待调度任务对应的优先级和/或请求执行时间,存储所述待调度任务。
对于上述的方法,在一种可能的实现方式中,将满足预设条件的各项待调度任务加入第一任务队列,包括:
检测是否存储有第一待调度任务,所述第一待调度任务为第二时间段内接收的待调度任务;
在检测到存储有所述第一待调度任务的情况下,按照所述第一待调度任务对应的优先级和/或请求执行时间,将所述第一待调度任务加入第一任务队列。
对于上述的方法,在一种可能的实现方式中,将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列,包括:
检测所述第一任务队列中是否存储有第二待调度任务,所述第二待调度任务为需要在第一时间段内调度的待调度任务;
在检测到所述第一任务队列中存储有所述第二待调度任务的情况下,按照所述第二待调度任务对应的优先级和/或请求执行时间,将所述第二待调度任务加入第二任务队列。
对于上述的方法,在一种可能的实现方式中,所述方法还包括:
在检测到任务执行装置当前执行的任务未执行完成的情况下,禁止将其他的待调度任务调度至所述任务执行装置;或者
在检测到任务执行装置当前执行的任务执行完成的情况下,允许将其他的待调度任务调度至所述任务执行装置。
对于上述的方法,在一种可能的实现方式中,所述待调度任务为待调度的定时任务,所述定时任务为请求在预设时间开始执行或者请求在预设时间获得执行结果的任务。
根据本公开实施例的第二方面,提供一种任务调度装置,包括:
待调度任务存储模块,用于接收并存储各项待调度任务;
第一加入模块,用于将满足预设条件的各项待调度任务加入第一任务队列;
第二加入模块,用于将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列;
调度模块,用于对所述第二任务队列中的各项待调度任务进行调度。
对于上述的装置,在一种可能的实现方式中,所述待调度任务存储模块包括:
任务请求接收子模块,用于接收任务请求,所述任务请求包括所述待调度任务和所述待调度任务对应的优先级和/或请求执行时间;
待调度任务存储子模块,用于按照所述待调度任务对应的优先级和/或请求执行时间,存储所述待调度任务。
对于上述的装置,在一种可能的实现方式中,所述第一加入模块包括:
第一待调度任务检测子模块,用于检测是否存储有第一待调度任务,所述第一待调度任务为第二时间段内接收的待调度任务;
第一待调度任务加入子模块,用于在检测到存储有所述第一待调度任务的情况下,按照所述第一待调度任务对应的优先级和/或请求执行时间,将所述第一待调度任务加入第一任务队列。
对于上述的装置,在一种可能的实现方式中,所述第二加入模块包括:
第二待调度任务检测子模块,用于检测所述第一任务队列中是否存储有第二待调度任务,所述第二待调度任务为需要在第一时间段内调度的待调度任务;
第二待调度任务加入子模块,用于在检测到所述第一任务队列中存储有所述第二待调度任务的情况下,按照所述第二待调度任务对应的优先级和/或请求执行时间,将所述第二待调度任务加入第二任务队列。
对于上述的装置,在一种可能的实现方式中,所述装置还包括:
禁止调度模块,用于在检测到任务执行装置当前执行的任务未执行完成的情况下,禁止将其他的待调度任务调度至所述任务执行装置;和/或
允许调度模块,用于在检测到任务执行装置当前执行的任务执行完成的情况下,允许将其他的待调度任务调度至所述任务执行装置。
对于上述的装置,在一种可能的实现方式中,所述待调度任务为待调度的定时任务,所述定时任务为请求在预设时间开始执行或者请求在预设时间获得执行结果的任务。
根据本公开实施例的第三方面,提供一种任务调度系统,包括:
一个或者多个任务调度装置,以及多个任务执行装置,其中,所述任务调度装置为如上所述的任务调度装置。
根据本公开实施例的第四方面,提供一种任务调度装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收并存储各项待调度任务;
将满足预设条件的各项待调度任务加入第一任务队列;
将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列;
对所述第二任务队列中的各项待调度任务进行调度。
本公开的实施例提供的技术方案可以包括以下有益效果:通过本公开的任务调度方法、装置及系统,能够接收并存储各项待调度任务,将满足预设条件的各项待调度任务加入第一任务队列,将第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列,并将第二任务队列中的各项待调度任务调度至分布式的任务执行装置中进行执行。采用无中心模式的任务调度装置,能够支持负载均衡,且具有较高的可用性、并发性和实时性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种任务调度方法的流程图。
图2是根据示例性实施例的一个示例示出的一种任务调度方法中步骤S101的实现流程图。
图3是根据示例性实施例的一个示例示出的一种任务调度方法中步骤S102的实现流程图。
图4是根据示例性实施例的一个示例示出的一种任务调度方法中步骤S103的实现流程图。
图5是根据示例性实施例的一个示例示出的一种任务调度方法的实现流程图。
图6是根据一示例性实施例示出的一种任务调度装置的框图。
图7是根据一示例性实施例的一个示例示出的一种任务调度装置的框图。
图8是根据一示例性实施例示出的一种用于任务调度的装置1900的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种任务调度方法的流程图。该任务调度方法可以用于计算机,在此不作限定。如图1所示,该任务调度方法,可以包括以下步骤。
在步骤S101中,接收并存储各项待调度任务。
在一种可能的实现方式中,待调度任务为待调度的定时任务,定时任务为请求在预设时间开始执行或者请求在预设时间获得执行结果的任务。
本实施例的待调度任务可以包括需要任务调度装置调度给任务执行装置进行执行的任务。其中,待调度任务可以由客户端(Client)发起。本实施例不限制待调度任务的类型和数量,例如一个或者多个客户端可以发起多个任务。
作为本实施例的一个示例,任务调度装置可以提供一个或者多个任务写入接口,客户端通过调用任务写入接口,从而完成任务的写入。
需要说明的是,本实施例不限制客户端将任务写入任务调度装置的方式。举例而言,在存在多个任务调度装置接收待调度任务的情况下,可以随机选择一个任务调度装置写入任务,也可以选择当前空闲的任务调度装置写入任务,还可以选择任务调度效率最高的任务调度装置写入任务,对此不作限制。
任务调度装置可以设置有存储各项待调度任务的存储模块(Job_Storage),例如分布式存储工具。在任务调度装置接收到待调度任务的情况下,可以将该待调度任务存储至存储模块。进一步地,可以设置在该待调度任务调度至任务执行装置(完成调度)的情况下,删除存储模块中所存储的该待调度任务,也可以设置在该待调度任务加入第一任务队列的情况下,删除存储模块中所存储的该待调度任务,对此不作限制。
在步骤S102中,将满足预设条件的各项待调度任务加入第一任务队列。
在本实施例中,任务调度装置最初开始进行任务调度时,可以生成第一任务队列。其中,第一任务队列可以包括需要任务调度装置进行调度的部分或者全部待调度任务。进一步地,可以按照第一预设频率对第一任务队列进行更新。
作为本实施例的一个示例,可以每间隔一段时间(例如以第一预设频率)对存储模块进行检测,将存储模块中存储的而第一任务队列中没有存储的各项待调度任务加入第一任务队列。
在步骤S103中,将第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列。
在本实施例中,任务调度装置最初开始进行任务调度时,可以在已经生成的第一任务队列的基础上生成第二任务队列。第二任务队列可以包括需要在第一时间段内调度的各项待调度任务。进一步地,可以按照第二预设频率对第二任务队列进行更新。
作为本实施例的一个示例,可以通过定时器监控所述待调度任务的请求执行时间,从第一任务队列中选取需要在第一时间段内调度的各项待调度任务加入第二任务队列,并可以从第一任务队列中删除已加入第二任务队列的待调度任务。
本实施例不限制第一时间段的时间长度,在实际应用的过程中,可以根据工程需要进行设定。
作为本实施例的一个示例,第一时间段可以根据当前系统时间以及第一预设值确定。例如,当前系统时间为12:00,第一预设值为10分钟,则第一时间段为12:00至12:10,从而可以将第一任务队列中需要在12:00至12:10中调度的各项待调度任务加入第二任务队列。
在步骤S104中,对第二任务队列中的各项待调度任务进行调度。
通过本实施例的任务调度方法,能够接收并存储各项待调度任务,将满足预设条件的各项待调度任务加入第一任务队列,将第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列,并将第二任务队列中的各项待调度任务调度至分布式的任务执行装置中进行执行。采用无中心模式的任务调度装置,能够支持负载均衡,且具有较高的可用性、并发性和实时性。
图2是根据示例性实施例的一个示例示出的一种任务调度方法中步骤S101的实现流程图。如图2所示,接收并存储各项待调度任务,可以包括以下步骤。
在步骤S201中,接收任务请求,任务请求包括待调度任务和待调度任务对应的优先级和/或请求执行时间。
本实施例的任务请求可以由客户端(Client)发起。其中,任务请求可以包括一个或者多个待调度任务和各项待调度任务对应的优先级;或者,任务请求可以包括一个或者多个待调度任务和各项待调度任务对应的请求执行时间;或者,任务请求可以包括一个或者多个待调度任务,以及各项待调度任务对应的优先级和请求执行时间。
其中,优先级可以为待调度任务进行调度的优先级别,请求执行时间可以为请求任务执行装置开始执行或者请求获得执行结果的时间。一般而言,优先级越高的待调度任务,或者请求执行时间越早的待调度任务越优先进行调度。
需要说明的是,任务的实际调度时间可以为任务调度装置将任务调度至任务执行装置的时间,任务的请求执行时间可以为请求任务执行装置开始执行或者请求在预设时间获得执行结果的时间,任务的实际执行时间可以为任务执行装置实际开始执行或者获得执行结果的时间。
在步骤S202中,按照待调度任务对应的优先级和/或请求执行时间,存储待调度任务。
在本实施例中,可以将各项待调度任务有序存储在存储装置。本实施例不限定有序存储各项待调度任务的方式,例如可以按照各项待调度任务的调度顺序存储各项待调度任务。
作为本实施例的一个示例,在任务请求包括优先级的情况下,任务调度装置可以根据各项待调度任务的优先级确定调度的先后顺序。其中,具有较高优先级的待调度任务可以优先由任务调度装置进行调度。
作为本实施例的另一个示例,在任务请求包括请求执行时间的情况下,任务调度装置可以根据各项待调度任务的请求执行时间确定调度的先后顺序。其中,具有较早的请求执行时间的待调度任务可以优先由任务调度装置进行调度。
作为本实施例的另一个示例,在任务请求包括优先级和请求执行时间的情况下,任务调度装置可以根据各项待调度任务的优先级和请求执行时间确定调度的先后顺序。举例而言,同等优先级的各项待调度任务,具有较早的请求执行时间的待调度任务可以优先由任务调度装置进行调度。不同优先级的各项待调度任务,具有较高优先级的待调度任务可以优先由任务调度装置进行调度。
图3是根据示例性实施例的一个示例示出的一种任务调度方法中步骤S102的实现流程图。如图3所示,将满足预设条件的各项待调度任务加入第一任务队列,可以包括以下步骤。
在步骤S301中,检测是否存储有第一待调度任务,第一待调度任务为第二时间段内接收的待调度任务。
第一任务队列可以包括需要任务调度装置进行调度的部分或者全部待调度任务。进一步地,可以按照第一预设频率对第一任务队列进行更新。
本实施例不限定第二时间段的时间长度,在实际应用的过程中,可以根据工程需要进行设定。
作为本实施例的一个示例,第二时间段可以根据当前系统时间以及第二预设值确定。例如,当前系统时间为11:00,第二预设值为20分钟,则第二时间段为10:40至11:00。在该示例中,可以每隔20分钟对存储模块进行检测,将存储模块中存储的而第一任务队列中没有存储的各项待调度任务加入第一任务队列。
在步骤S302中,在检测到存储有第一待调度任务的情况下,按照第一待调度任务对应的优先级和/或请求执行时间,将第一待调度任务加入第一任务队列。
作为本实施例的一个示例,存储装置存储有待调度任务C(请求执行时间:12:00),第一任务队列包括待调度任务A(请求执行时间:12:30)和待调度任务B(请求执行时间:11:30)。在检测到存储装置存储有待调度任务C(第一待调度任务)的情况下,将待调度任务C加入第一任务队列。进一步地,根据各项待调度任务对应的请求执行时间,可以确定任务调度装置进行调度的顺序为任务B、任务C和任务A,即第一任务队列所包括的待调度任务的排列顺序可以为任务B、任务C和任务A。
图4是根据示例性实施例的一个示例示出的一种任务调度方法中步骤S103的实现流程图。如图4所示,将第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列,可以包括以下步骤。
在步骤S401中,检测第一任务队列中是否存储有第二待调度任务,第二待调度任务为需要在第一时间段内调度的待调度任务。
第二任务队列可以包括需要在第一时间段内调度的待调度任务。进一步地,可以按照第二预设频率对第二任务队列进行更新。
作为本实施例的一个示例,可以按照第二预设频率对第一任务队列进行检测,将第一任务队列中存储的需要在第一时间段内调度的待调度任务加入第二任务队列。本实施例不限定第二预设频率的大小,在实际应用的过程中,可以根据工程需要进行设定。
在步骤S402中,在检测到第一任务队列中存储有第二待调度任务的情况下,按照第二待调度任务对应的优先级和/或请求执行时间,将第二待调度任务加入第二任务队列。
作为本实施例的一个示例,第一时间段为11:00-12:00,第一任务队列包括的待调度任务B(请求执行时间:11:30)、待调度任务C(请求执行时间:12:00)和待调度任务A(请求执行时间:12:30)。在检测到第一任务队列中存储有待调度任务B和待调度任务C(第二待调度任务,需要在11:00-12:00调度的待调度任务)的情况下,将待调度任务B和待调度任务C从第一任务队列加入第二任务队列。
图5是根据示例性实施例的一个示例示出的一种任务调度方法的实现流程图。如图5所示,该任务调度方法,可以包括以下步骤。
在步骤S501中,接收并存储各项待调度任务。
对该步骤的描述可以参见步骤S101。
在步骤S502中,将满足预设条件的各项待调度任务加入第一任务队列。
对该步骤的描述可以参见步骤S102。
在步骤S503中,将第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列。
对该步骤的描述可以参见步骤S103。
在步骤S504中,对第二任务队列中的各项待调度任务进行调度。
对该步骤的描述可以参见步骤S104。
在步骤S505中,检测任务执行装置当前执行的任务是否完成,在检测到该任务执行装置当前执行的任务未执行完成的情况下,执行步骤S506,在该检测到任务执行装置当前执行的任务执行完成的情况下,执行步骤S507。
在步骤S506中,禁止将其他的待调度任务调度至该任务执行装置。
在步骤S507中,允许将其他的待调度任务调度至该任务执行装置。
一般而言,对于某些正由任务执行装置执行的任务,如果分配给其单独占用任务执行装置的时间已经用完,而任务还没有执行完成的情况下,按照操作规则需要将该正在执行的任务换下。在这种情况下,可能会中断当前正在执行的任务,损害系统的稳定性。
在本实施例中,可以给任务调度装置加锁,从而禁止针对正在执行任务的任务执行装置进行任务调度。进一步地,在检测到任务执行装置当前执行的任务执行完成的情况下,给任务调度装置开锁,则允许任务调度装置针对已经完成任务的任务执行装置进行任务调度。通过上述方法,可以使得某个任务保持对任务执行装置的控制权,不管是否有优先级更高或者请求执行时间更早的任务进入了就绪态,都要等到这个任务完成后再进行调度。
通过本实施例的任务调度方法,能够接收并存储各项待调度任务,将满足预设条件的各项待调度任务加入第一任务队列,将第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列,并将第二任务队列中的各项待调度任务调度至分布式的任务执行装置中进行执行。采用无中心模式的任务调度装置,能够支持负载均衡,且具有较高的可用性、并发性和实时性。此外,本实施例的任务调度方法具有分布式协调协同功能,例如为任务调度装置进行加锁。进一步地,通过给任务调度装置进行加锁,可以保证任务的有序执行,实现轻量级且与业务隔离,使得系统具有较高的稳定性。
图6是根据一示例性实施例示出的一种任务调度装置的框图。参照图6,该装置包括待调度任务存储模块11,第一加入模块13、第二加入模块15和调度模块17。
其中,待调度任务存储模块11被配置为接收并存储各项待调度任务。第一加入模块13被配置为将满足预设条件的各项待调度任务加入第一任务队列。第二加入模块15被配置为将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列。调度模块17被配置为对所述第二任务队列中的各项待调度任务进行调度。
图7是根据一示例性实施例的一个示例示出的一种任务调度装置的框图。参照图7:
在一种可能的实现方式中,所述待调度任务存储模块11包括任务请求接收子模块111和待调度任务存储子模块113。
其中,任务请求接收子模块111被配置为接收任务请求,所述任务请求包括所述待调度任务和所述待调度任务对应的优先级和/或请求执行时间。待调度任务存储子模块113被配置为按照所述待调度任务对应的优先级和/或请求执行时间,存储所述待调度任务。
在一种可能的实现方式中,所述第一加入模块13包括第一待调度任务检测子模块131和第一待调度任务加入子模块133。
其中,第一待调度任务检测子模块131被配置为检测是否存储有第一待调度任务,所述第一待调度任务为第二时间段内接收的待调度任务。第一待调度任务加入子模块133被配置为在检测到存储有所述第一待调度任务的情况下,按照所述第一待调度任务对应的优先级和/或请求执行时间,将所述第一待调度任务加入第一任务队列。
在一种可能的实现方式中,所述第二加入模块15包括第二待调度任务检测子模块151和第二待调度任务加入子模块153。
其中,第二待调度任务检测子模块151被配置为检测所述第一任务队列中是否存储有第二待调度任务,所述第二待调度任务为需要在第一时间段内调度的待调度任务。第二待调度任务加入子模块153被配置为在检测到所述第一任务队列中存储有所述第二待调度任务的情况下,按照所述第二待调度任务对应的优先级和/或请求执行时间,将所述第二待调度任务加入第二任务队列。
在一种可能的实现方式中,所述装置还包括禁止调度模块21和/或允许调度模块23。
其中,禁止调度模块21被配置为在检测到任务执行装置当前执行的任务未执行完成的情况下,禁止将其他的待调度任务调度至所述任务执行装置。允许调度模块23被配置为在检测到任务执行装置当前执行的任务执行完成的情况下,允许将其他的待调度任务调度至所述任务执行装置。
在一种可能的实现方式中,所述待调度任务为待调度的定时任务,所述定时任务为请求在预设时间开始执行或者请求在预设时间获得执行结果的任务。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
通过本实施例的任务调度装置,能够接收并存储各项待调度任务,将满足预设条件的各项待调度任务加入第一任务队列,并将第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列,以实现对第二任务队列中的各项待调度任务进行调度,支持负载均衡,具有较高的可用性及并发性,实时性好、轻量级且与业务隔离。
图8是根据一示例性实施例示出的一种用于任务调度的装置1900的框图。例如,装置1900可以被提供为一服务器。参照图8,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法图1至图5中所述的方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (14)

1.一种任务调度方法,其特征在于,包括:
接收并存储各项待调度任务;
将满足预设条件的各项待调度任务加入第一任务队列;
将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列;
对所述第二任务队列中的各项待调度任务进行调度。
2.根据权利要求1所述的任务调度方法,其特征在于,接收并存储各项待调度任务,包括:
接收任务请求,所述任务请求包括所述待调度任务和所述待调度任务对应的优先级和/或请求执行时间;
按照所述待调度任务对应的优先级和/或请求执行时间,存储所述待调度任务。
3.根据权利要求1所述的任务调度方法,其特征在于,将满足预设条件的各项待调度任务加入第一任务队列,包括:
检测是否存储有第一待调度任务,所述第一待调度任务为第二时间段内接收的待调度任务;
在检测到存储有所述第一待调度任务的情况下,按照所述第一待调度任务对应的优先级和/或请求执行时间,将所述第一待调度任务加入第一任务队列。
4.根据权利要求1所述的任务调度方法,其特征在于,将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列,包括:
检测所述第一任务队列中是否存储有第二待调度任务,所述第二待调度任务为需要在第一时间段内调度的待调度任务;
在检测到所述第一任务队列中存储有所述第二待调度任务的情况下,按照所述第二待调度任务对应的优先级和/或请求执行时间,将所述第二待调度任务加入第二任务队列。
5.根据权利要求1至4中任意一项所述的任务调度方法,其特征在于,所述方法还包括:
在检测到任务执行装置当前执行的任务未执行完成的情况下,禁止将其他的待调度任务调度至所述任务执行装置;或者
在检测到任务执行装置当前执行的任务执行完成的情况下,允许将其他的待调度任务调度至所述任务执行装置。
6.根据权利要求1至4中任意一项所述的任务调度方法,其特征在于,所述待调度任务为待调度的定时任务,所述定时任务为请求在预设时间开始执行或者请求在预设时间获得执行结果的任务。
7.一种任务调度装置,其特征在于,包括:
待调度任务存储模块,用于接收并存储各项待调度任务;
第一加入模块,用于将满足预设条件的各项待调度任务加入第一任务队列;
第二加入模块,用于将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列;
调度模块,用于对所述第二任务队列中的各项待调度任务进行调度。
8.根据权利要求7所述的任务调度装置,其特征在于,所述待调度任务存储模块包括:
任务请求接收子模块,用于接收任务请求,所述任务请求包括所述待调度任务和所述待调度任务对应的优先级和/或请求执行时间;
待调度任务存储子模块,用于按照所述待调度任务对应的优先级和/或请求执行时间,存储所述待调度任务。
9.根据权利要求7所述的任务调度装置,其特征在于,所述第一加入模块包括:
第一待调度任务检测子模块,用于检测是否存储有第一待调度任务,所述第一待调度任务为第二时间段内接收的待调度任务;
第一待调度任务加入子模块,用于在检测到存储有所述第一待调度任务的情况下,按照所述第一待调度任务对应的优先级和/或请求执行时间,将所述第一待调度任务加入第一任务队列。
10.根据权利要求7所述的任务调度装置,其特征在于,所述第二加入模块包括:
第二待调度任务检测子模块,用于检测所述第一任务队列中是否存储有第二待调度任务,所述第二待调度任务为需要在第一时间段内调度的待调度任务;
第二待调度任务加入子模块,用于在检测到所述第一任务队列中存储有所述第二待调度任务的情况下,按照所述第二待调度任务对应的优先级和/或请求执行时间,将所述第二待调度任务加入第二任务队列。
11.根据权利要求7至10中任意一项所述的任务调度装置,其特征在于,所述装置还包括:
禁止调度模块,用于在检测到任务执行装置当前执行的任务未执行完成的情况下,禁止将其他的待调度任务调度至所述任务执行装置;和/或
允许调度模块,用于在检测到任务执行装置当前执行的任务执行完成的情况下,允许将其他的待调度任务调度至所述任务执行装置。
12.根据权利要求7至10中任意一项所述的任务调度装置,其特征在于,所述待调度任务为待调度的定时任务,所述定时任务为请求在预设时间开始执行或者请求在预设时间获得执行结果的任务。
13.一种任务调度系统,其特征在于,包括:
一个或者多个任务调度装置,以及多个任务执行装置,其中,所述任务调度装置为如权利要求7至12中任意一项所述的任务调度装置。
14.一种任务调度装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
接收并存储各项待调度任务;
将满足预设条件的各项待调度任务加入第一任务队列;
将所述第一任务队列中需要在第一时间段内调度的各项待调度任务加入第二任务队列;
对所述第二任务队列中的各项待调度任务进行调度。
CN201611130149.7A 2016-12-09 2016-12-09 任务调度方法、装置及系统 Active CN106775977B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611130149.7A CN106775977B (zh) 2016-12-09 2016-12-09 任务调度方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611130149.7A CN106775977B (zh) 2016-12-09 2016-12-09 任务调度方法、装置及系统

Publications (2)

Publication Number Publication Date
CN106775977A true CN106775977A (zh) 2017-05-31
CN106775977B CN106775977B (zh) 2020-06-02

Family

ID=58875804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611130149.7A Active CN106775977B (zh) 2016-12-09 2016-12-09 任务调度方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106775977B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704323A (zh) * 2017-11-07 2018-02-16 广州探迹科技有限公司 一种网络爬虫任务调度方法及装置
CN108388230A (zh) * 2018-02-11 2018-08-10 北京车和家信息技术有限公司 一种任务调度方法、任务调度系统、车辆电子控制单元及车辆
CN108600077A (zh) * 2018-03-01 2018-09-28 聚好看科技股份有限公司 一种定时消息处理方法及消息管理服务器
WO2019007406A1 (zh) * 2017-07-05 2019-01-10 上海寒武纪信息科技有限公司 一种数据处理装置和方法
CN109213581A (zh) * 2017-07-05 2019-01-15 上海寒武纪信息科技有限公司 一种数据处理装置和方法
CN109213578A (zh) * 2017-07-05 2019-01-15 武汉安天信息技术有限责任公司 一种任务的调度方法和调度系统
WO2020124524A1 (zh) * 2018-12-21 2020-06-25 深圳鲲云信息科技有限公司 一种资源平台独享资源的方法、装置及电子设备
CN111427912A (zh) * 2020-03-31 2020-07-17 拉卡拉支付股份有限公司 一种任务处理方法、装置、电子设备及存储介质
CN111679898A (zh) * 2020-06-08 2020-09-18 中国银行股份有限公司 定时任务的调度方法、装置、计算机设备及可读存储介质
CN113051063A (zh) * 2021-06-02 2021-06-29 北京轻松筹信息技术有限公司 分布式任务的任务调度方法、装置及电子设备
CN113159602A (zh) * 2021-04-30 2021-07-23 中国银行股份有限公司 任务的派发方法、装置、设备及可读存储介质
US11086634B2 (en) 2017-07-05 2021-08-10 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
US11307866B2 (en) 2017-09-29 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
US11307865B2 (en) 2017-09-06 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464810A (zh) * 2008-12-31 2009-06-24 金蝶软件(中国)有限公司 服务程序处理方法及服务器
CN101887383A (zh) * 2010-06-30 2010-11-17 中山大学 一种进程实时调度方法
CN102981904A (zh) * 2011-09-02 2013-03-20 阿里巴巴集团控股有限公司 一种任务调度方法及系统
CN103207807A (zh) * 2012-01-12 2013-07-17 阿里巴巴集团控股有限公司 任务调度方法和装置
CN104834564A (zh) * 2015-05-20 2015-08-12 百度在线网络技术(北京)有限公司 任务调度的方法和装置
CN105843966A (zh) * 2016-04-22 2016-08-10 中国银联股份有限公司 数据处理系统以及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101464810A (zh) * 2008-12-31 2009-06-24 金蝶软件(中国)有限公司 服务程序处理方法及服务器
CN101887383A (zh) * 2010-06-30 2010-11-17 中山大学 一种进程实时调度方法
CN102981904A (zh) * 2011-09-02 2013-03-20 阿里巴巴集团控股有限公司 一种任务调度方法及系统
CN103207807A (zh) * 2012-01-12 2013-07-17 阿里巴巴集团控股有限公司 任务调度方法和装置
CN104834564A (zh) * 2015-05-20 2015-08-12 百度在线网络技术(北京)有限公司 任务调度的方法和装置
CN105843966A (zh) * 2016-04-22 2016-08-10 中国银联股份有限公司 数据处理系统以及方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11086634B2 (en) 2017-07-05 2021-08-10 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
CN109213581A (zh) * 2017-07-05 2019-01-15 上海寒武纪信息科技有限公司 一种数据处理装置和方法
US11307864B2 (en) 2017-07-05 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
WO2019007406A1 (zh) * 2017-07-05 2019-01-10 上海寒武纪信息科技有限公司 一种数据处理装置和方法
CN109213578A (zh) * 2017-07-05 2019-01-15 武汉安天信息技术有限责任公司 一种任务的调度方法和调度系统
US11307865B2 (en) 2017-09-06 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
US11307866B2 (en) 2017-09-29 2022-04-19 Shanghai Cambricon Information Technology Co., Ltd. Data processing apparatus and method
CN107704323A (zh) * 2017-11-07 2018-02-16 广州探迹科技有限公司 一种网络爬虫任务调度方法及装置
CN108388230A (zh) * 2018-02-11 2018-08-10 北京车和家信息技术有限公司 一种任务调度方法、任务调度系统、车辆电子控制单元及车辆
CN108600077B (zh) * 2018-03-01 2021-01-22 聚好看科技股份有限公司 一种定时消息处理方法及消息管理服务器
CN108600077A (zh) * 2018-03-01 2018-09-28 聚好看科技股份有限公司 一种定时消息处理方法及消息管理服务器
WO2020124524A1 (zh) * 2018-12-21 2020-06-25 深圳鲲云信息科技有限公司 一种资源平台独享资源的方法、装置及电子设备
CN111427912A (zh) * 2020-03-31 2020-07-17 拉卡拉支付股份有限公司 一种任务处理方法、装置、电子设备及存储介质
CN111679898A (zh) * 2020-06-08 2020-09-18 中国银行股份有限公司 定时任务的调度方法、装置、计算机设备及可读存储介质
CN113159602A (zh) * 2021-04-30 2021-07-23 中国银行股份有限公司 任务的派发方法、装置、设备及可读存储介质
CN113051063A (zh) * 2021-06-02 2021-06-29 北京轻松筹信息技术有限公司 分布式任务的任务调度方法、装置及电子设备
CN113051063B (zh) * 2021-06-02 2021-09-17 北京轻松筹信息技术有限公司 分布式任务的任务调度方法、装置及电子设备

Also Published As

Publication number Publication date
CN106775977B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
CN106775977A (zh) 任务调度方法、装置及系统
US8875151B2 (en) Load balancing method and apparatus in symmetric multi-processor system
US9396028B2 (en) Scheduling workloads and making provision decisions of computer resources in a computing environment
US9218210B2 (en) Distributed processing system
US20120216203A1 (en) Holistic task scheduling for distributed computing
US9104491B2 (en) Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources
US20060048161A1 (en) Resource allocation method and system
Wang et al. Joint server assignment and resource management for edge-based MAR system
US8051427B2 (en) Method of establishing a logical state of an instance using non-deterministic operation results stored in a result log
CN106528288A (zh) 一种资源管理方法、装置和系统
Zribi et al. Minimizing the makespan for the MPM job-shop with availability constraints
Canon et al. Online scheduling of task graphs on heterogeneous platforms
CN102760073B (zh) 一种任务调度方法、系统及装置
WO2015042904A1 (zh) 一种多核系统中资源池的调度方法、装置和系统
CN113222253B (zh) 排产优化方法、装置、设备及计算机可读存储介质
Lozano et al. Scheduling of parallel machines with sequence-dependent batches and product incompatibilities in an automotive glass facility
CN113010290A (zh) 一种任务管理方法、装置、设备及存储介质
Pop et al. The Art of Scheduling for Big Data Science.
Zhan et al. DETS: a dynamic and elastic task scheduler supporting multiple parallel schemes
US11055137B2 (en) CPU scheduling methods based on relative time quantum for dual core environments
US20230367633A1 (en) Gpu and gpu method
US20230077301A1 (en) Synchronization mechanisms for a multi-core processor
Smowton et al. Analysing cancer genomics in the elastic cloud
US8365171B2 (en) I/O agent assignment for jobs using an MPI library
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体

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
GR01 Patent grant
GR01 Patent grant