CN113051063A - 分布式任务的任务调度方法、装置及电子设备 - Google Patents

分布式任务的任务调度方法、装置及电子设备 Download PDF

Info

Publication number
CN113051063A
CN113051063A CN202110611732.4A CN202110611732A CN113051063A CN 113051063 A CN113051063 A CN 113051063A CN 202110611732 A CN202110611732 A CN 202110611732A CN 113051063 A CN113051063 A CN 113051063A
Authority
CN
China
Prior art keywords
task
timing
tasks
task execution
node
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
CN202110611732.4A
Other languages
English (en)
Other versions
CN113051063B (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 Easy Yikang Information Technology Co ltd
Original Assignee
Beijing Qingsongchou Information Technology 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 Qingsongchou Information Technology Co ltd filed Critical Beijing Qingsongchou Information Technology Co ltd
Priority to CN202110611732.4A priority Critical patent/CN113051063B/zh
Publication of CN113051063A publication Critical patent/CN113051063A/zh
Application granted granted Critical
Publication of CN113051063B publication Critical patent/CN113051063B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Abstract

本申请提供了一种分布式任务的任务调度方法、装置及电子设备,该方法和装置应用于分布式系统,分布式系统包括多个任务执行节点,多个任务执行节点包括主任务执行节点和至少一个从任务执行节点。该任务调度方法为启动多个任务执行节点,并使主任务执行节点获取全部定时任务和任务执行节点的数量;根据定时任务之间的执行间隔和数量将全部定时任务向多个任务执行节点进行任务分配。通过任务分配使系统中所有任务执行节点都有任务可执行,而不是仅由单个任务执行节点工作,从而提高了任务执行节点的利用率和执行效率,避免了资源空耗和浪费。

Description

分布式任务的任务调度方法、装置及电子设备
技术领域
本申请涉及分布式计算技术领域,更具体地说,涉及一种分布式任务的任务调度方法、装置及电子设备。
背景技术
目前的多节点的分布式任务系统中,一般在同一时间只有一个节点在执行任务,其他节点只有在该节点出现故障时才接替执行任务,这样一来,其他节点在自身没有任务执行时依旧在空耗资源,造成资源浪费。
发明内容
有鉴于此,本申请提供一种分布式任务的任务调度方法、装置及电子设备,用于避免分布式任务系统的资源浪费。
为了实现上述目的,现提出的方案如下:
一种分布式任务的任务调度方法,应用于分布式系统,所述分布式系统包括多个任务执行节点,所述多个任务执行节点包括主任务执行节点和至少一个从任务执行节点,所述任务调度方法包括步骤:
启动所述多个任务执行节点,并使所述主任务执行节点获取全部定时任务的数量和所述多个任务执行节点的数量;
根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配。
可选的,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述任务执行节点进行任务分配,包括步骤:
根据所述多个任务执行节点的数量和所述定时任务的数量进行计算,得到每个所述任务执行节点的平均任务数;
根据预设时间阈值从所述全部定时任务选出第一定时任务和/或第二定时任务,所述第一定时任务为执行间隔小于或等于所述预设时间间隔的定时任务,所述第二定时任务为执行间隔大于所述预设时间阈值的定时任务;
根据所述平均任务数将所述第一定时任务和/或所述第二定时任务分配给所述主任务执行节点和所述至少一个从任务执行节点中的至少一个,并记录分配信息。
可选的,所述根据所述平均任务数将所述第一定时任务和/或所述第二定时任务分配给所述主任务执行节点和所述至少一个从任务执行节点中的至少一个,并记录分配信息,包括步骤:
如果所述第一定时任务的数量小于或等于所述平均任务数,将所述第一定时任务分配给所述主任务执行节点,且将所述第二定时任务通过均发的方式分配给所述至少一个从任务执行节点;
如果所述第一定时任务的数量大于所述平均任务数,则将所述第一定时任务的数量按照所述平均任务数分配给所述主任务执行节点,且将所述第二定时任务和剩余的所述第一定时任务通过均发的方式分配给所述至少一个从任务执行节点。
可选的,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配,还包括步骤:
当发生定时任务新增时,如果新增定时任务为所述第一定时任务,则将所述新增定时任务分配给所述主任务执行节点和/或所述至少一个从任务执行节点;
如果所述新增定时任务为所述第二定时任务,则将所述新增定时任务分配给所述至少一个从任务执行节点。
可选的,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配,还包括步骤:
当原有所述定时任务被删除时,从对应的所述任务执行节点中删除被删除的定时任务,并返回到所述根据所述多个任务执行节点的数量和所述定时任务的数量进行计算步骤。
可选的,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配,还包括步骤:
当原有所述定时任务的执行时间被修改或者所述定时任务的分配发生严重不均衡时,返回到所述根据所述多个任务执行节点的数量和所述定时任务的数量进行计算步骤。
可选的,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配,还包括步骤:
当所述主任务执行节点发生宕机时,根据竞选机制从所述从任务执行节点中选出新的主任务执行节点,并修改所述从任务执行节点的数量,然后,返回到所述根据所述多个任务执行节点的数量和所述定时任务的数量进行计算步骤。
可选的,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配,还包括步骤:
当所述从任务执行节点发生宕机时,收回发生宕机的所述从任务执行节点中的定时任务,或者修改所述从任务执行节点的数量,然后返回到所述根据所述多个任务执行节点的数量和所述定时任务的数量进行计算步骤。
一种分布式任务的任务调度装置,应用于分布式系统,所述分布式系统包括多个任务执行节点,所述多个任务执行节点包括主任务执行节点和至少一个从任务执行节点,所述任务调度装置包括:
启动控制模块,被配置为启动所述多个任务执行节点,并使所述主任务执行节点获取全部定时任务的数量和所述多个任务执行节点的数量;
分配执行模块,被配置为根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配。
可选的,所述分配执行模块包括:
分配启动单元,用于根据所述多个任务执行节点的数量和所述定时任务的数量进行计算,得到每个所述任务执行节点的平均任务数;
任务分类单元,用于根据预设时间阈值从所述全部定时任务选出第一定时任务和/或第二定时任务,所述第一定时任务为执行间隔小于或等于所述预设时间间隔的定时任务,所述第二定时任务为执行间隔大于所述预设时间阈值的定时任务;
任务分配单元,用于根据所述平均任务数将所述第一定时任务和/或第二定时任务分配给所述主任务执行节点和所述至少一个从任务执行节点中的至少一个,并记录分配信息。
可选的,所述任务分配单元具体用于,如果所述第一定时任务的数量小于或等于所述平均任务数,将所述第一定时任务分配给所述主任务执行节点,且将所述第二定时任务通过均发的方式分配给所述至少一个从任务执行节点;如果所述第一定时任务的数量大于所述平均任务数,则将所述第一定时任务的数量按照所述平均任务数分配给所述主任务执行节点,且将所述第二定时任务和剩余的所述第一定时任务通过均发的方式分配给所述至少一个从任务执行节点。
可选的,所述分配执行模块还包括:
任务新增单元,用于当发生定时任务新增时,如果新增定时任为所述第一定时任务,则将所述新增定时任务分配给所述主任务执行节点和/或所述至少一个从任务执行节点;如果所述新增定时任务为所述第二定时任务,则将所述新增定时任务分配给所述至少一个从任务执行节点。
可选的,所述分配执行模块还包括:
任务删除单元,用于当原有所述定时任务被删除时,从对应的所述任务执行节点中删除被删除的定时任务,并控制所述分配启动单元重新执行根据所述多个任务执行节点的数量和所述定时任务的数量进行计算。
可选的,所述分配执行模块还包括:
任务修改平衡单元,用于当原有所述定时任务的执行时间被修改或者所述定时任务的分配发生严重不均衡时,并控制所述分配启动单元重新执行根据所述多个任务执行节点的数量和所述定时任务的数量进行计算。
可选的,所述分配执行模块还包括:
第一处置单元,用于当所述主任务执行节点发生宕机时,根据竞选机制从所述从任务执行节点中选出主任务执行节点,并修改所述从任务执行节点的数量,然后,控制所述分配启动单元重新执行根据所述多个任务执行节点的数量和所述定时任务的数量进行计算。
可选的,所述分配执行模块还包括:
第二处置单元,用于当所述从任务执行节点发生宕机时,收回发生宕机的所述从任务执行节点中的第二定时任务,或者修改所述多个从任务执行节点的数量,然后返回到所述根据所述任务执行节点的数量和所述定时任务的数量进行计算步骤。
一种电子设备,包括至少一个处理器和与所述处理器连接的存储器,其中:
所述存储器用于存储计算机程序或指令;
所述处理器用于执行所述计算机程序或指令,以使所述电子设备实现前述的任务调度方法。
从上述的技术方案可以看出,本申请提供了一种分布式任务的任务调度方法、装置及电子设备,该方法和装置应用于分布式系统,分布式系统包括多个任务执行节点,多个任务执行节点包括主任务执行节点和至少一个从任务执行节点。该任务调度方法为启动多个任务执行节点,并使主任务执行节点获取全部定时任务和任务执行节点的数量;根据定时任务之间的执行间隔和数量将全部定时任务向多个任务执行节点进行任务分配。通过任务分配使系统中所有任务执行节点都有任务可执行,而不是仅由单个任务执行节点工作,从而提高了任务执行节点的利用率和执行效率,避免了资源空耗和浪费。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的一种分布式任务的任务调度方法的流程图;
图2为本申请实施例的一种定时任务的分配过程的流程图;
图3为本申请实施例的另一种定时任务的分配过程的流程图;
图4为本申请实施例的又一种定时任务的分配过程的流程图;
图5为本申请实施例的又一种定时任务的分配过程的流程图;
图6为本申请实施例的又一种定时任务的分配过程的流程图;
图7为本申请实施例的又一种定时任务的分配过程的流程图;
图8为本申请实施例的一种分布式任务的任务调度装置的框图;
图9为本申请实施例的另一种分布式任务的任务调度装置的框图;
图10为本申请实施例的又一种分布式任务的任务调度装置的框图;
图11为本申请实施例的又一种分布式任务的任务调度装置的框图;
图12为本申请实施例的又一种分布式任务的任务调度装置的框图;
图13为本申请实施例的又一种分布式任务的任务调度装置的框图;
图14为本申请实施例的又一种分布式任务的任务调度装置的框图;
图15为本申请实施例的一种电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
图1为本申请实施例的一种分布式任务的任务调度方法的流程图。
本实施例提供的任务调度方法应用于分布式系统,该分布式系统包括多个任务执行节点,每个任务执行节点一般来说可由相应的服务器实现,其中多个任务执行节点可包括一个主任务执行节点和至少一个从任务执行节点。所有任务执行节点可通过网络实现连接,并且任务执行节点之间定时进行心跳探测。
如图1所示,本实施例提供的任务调度方法具体包括如下步骤:
S1、启动多个任务执行节点,并使主任务执行节点获取全部定时任务的数量和多个任务执行节点的数量。
启动多个任务执行节点即启动该分布式系统内待执行任务的所有任务执行节点,并从中选出主任务执行节点和相应的从任务执行节点。
具体来说,该主任务执行节点是可通过诸如Raft协议的竞争选举机制从多个任务执行节点中选出的,即在多个任务执行节点启动后,所有节点都竞选该主任务执行节点,各个节点根据自身的网络情况和本身节点性能来竞选,在选出主任务执行节点后其他任务执行节点自动确定为从任务执行节点,受主任务执行节点辖制。
在任务执行期间,所有任务执行节点保持通信,进行信息交换。具体地,交换的信息可包括节点的身份信息(主任务执行节点身份和从任务执行节点身份)和任务详情信息(例如所执行任务的任务内容)。主任务执行节点向所有从任务执行节点发布通知,告知自身的主任务执行节点的身份;同时每个从任务执行节点也向主任务执行节点发送相应信息,以向主任务执行节点报告自身的从任务执行节点的身份,主任务执行节点和所有从任务执行节点从接收到的信息中确定对方状态,以便实现协同工作。当主任务执行节点在约定的时间间隔(诸如约定的时间间隔为3s)内或在约定的次数(例如约定的次数为3次)下没有接收到从任务执行节点的信息时,即确定相应从任务执行节点发生故障,停止发生故障的相应从任务执行节点的工作并收回该从任务执行节点的定时任务。
另外,当主任务执行节点因故障宕机时,从任务执行节点在约定时间内无法接收到主任务执行节点的信息,所有从任务执行节点即再次执行竞争选举机制,即所有从任务执行节点抢先确定自身为主任务执行节点,各个节点根据自身的网络情况和本身节点性能来竞选,在确定自身为主任务执行节点后即向其他任务执行节点发送代表自身主任务执行节点的信息,以确定自己为该新的主任务执行节点,完成主任务执行节点的继承。
另外,在启动多个任务执行节点后,使其中的主任务执行节点获取全部定时任务和所有从任务执行节点的节点信息,该节点信息包括从任务执行节点的数量,还包括从任务执行节点的地址,从而获取从任务执行节点的位置信息以向从任务执行节点分配定时任务。从任务执行节点的地址可为从任务执行节点的ip地址和端口。这里的定时任务来源于用户通过相应的web页面的输入。分布式系统可包括ETCD集群,定时任务可存储在ETCD集群中,可根据需要向ETCD集群中添加、删除或修改定时任务。主任务执行节点可监控ETCD集群中定时任务的添加、删除或修改的操作状态。主任务执行节点可向ETCD集群发送请求获取全部定时任务和所有从任务执行节点的节点信息。
所谓定时任务可以是用户通过文本页面添加的,代表什么时间执行什么操作,例如如下三个定时任务:
任务一:任务内容为发工资;任务执行时间为每月1号 12:00。
任务二:任务内容为提醒员工早打卡;任务执行时间为每天 9:00。
任务三:任务内容为提醒员工晚打卡;任务执行时间为每天18:00。
主任务执行节点能感知到所有对定时任务的添加、修改或者删除。例如:添加就是添加要执行的新的定时任务,修改就是修改任务执行时间。
S2、根据定时任务之间的执行间隔和定时任务的数量将全部定时任务向多个任务执行节点进行任务分配。
具体来说,当主任务执行节点接收用户通过web页面添加的全部定时任务时,根据所有定时任务之间的执行间隔和定时任务的数量向所有任务执行节点进行任务分配。这里不仅包括向其他从任务执行节点进行任务分配,还包括对自身进行分配。
从上述技术方案可以看出,本实施例提供了一种分布式任务的任务调度方法,该方法应用于分布式系统,分布式系统包括多个任务执行节点,多个任务执行节点包括主任务执行节点和至少一个从任务执行节点。该任务调度方法为启动多个任务执行节点,并使主任务执行节点获取全部定时任务和任务执行节点的数量;根据定时任务之间的执行间隔和数量将全部定时任务向多个任务执行节点进行任务分配。通过任务分配使系统中所有任务执行节点都有任务可执行,而不是仅由单个任务执行节点工作,从而提高了任务执行节点的利用率和执行效率,避免了资源空耗和浪费。
在本申请的一个具体实施方式中,通过具体如下方案实现对任务执行节点的任务分配,并使所有任务执行节点,包括主任务执行节点和至少一个从任务执行节点均衡地执行全部定时任务,该方案包括如下步骤,如图2所示。
S21、计算所有任务执行节点的平均任务数。
具体来说,根据多个任务执行节点的数量和定时任务的数量计算每个任务执行节点的平均任务数。平均任务数的计算策略可设置为:通过定时任务的总数量与任务执行节点的总数量相除得到初始平均值,其中,如果得到的初始平均值为小数,则将初始平均值向上取整得到的值作为平均任务数,如果得到的初始平均值为整数,则直接将初始平均值作为平均任务数。其中,平均任务数表示理论上平均分配到每个任务执行节点的定时任务数。当平均任务数与任务执行节点的总数量相乘的值大于定时任务的总数量时,可对其中一部分任务执行节点以平均任务数分配任务,剩余的任务执行节点以剩余的任务数分配任务。例如,定时任务的数量为10个,要执行任务的所有任务执行节点的数量为3个,计算得到初始平均值约为3.33,初始平均值为小数,则将初始平均值向上取整得到的值作为平均任务数,则平均任务数为4个,则可对其中2个任务执行节点按照平均任务数分配任务,剩余1个任务执行节点按照剩余的任务数分配任务,则对该3个任务执行节点的任务分配数分别为4、4、2。
S22、根据预设时间阈值确定第一定时任务和第二定时任务。
具体来说,根据预设时间阈值从全部定时任务中选出第一定时任务和/或第二定时任务。也就是说,全部定时任务中可仅包括第一定时任务、仅包括第二定时任务或包括第一定时任务和第二定时任务。该预设时间阈值可以提前规定,即用户可以从web页面中进行设定,例如预设时间阈值可以设定为2s。这里的第一定时任务是指全部定时任务中执行间隔小于或等于该预设时间阈值的定时任务,而执行间隔大于该预设时间阈值的定时任务则被确定为第二定时任务。
S23、根据平均任务数将第一定时任务和/或第二定时任务分配给主任务执行节点和至少一个从任务执行节点中的至少一个,并记录分配信息。
由于这里负责分配的为主任务执行节点,因此,主任务执行节点将第一定时任务即执行间隔较小的定时任务分配给自己。在全部定时任务中,当存在第一定时任务时,如果第一定时任务的数量小于或等于平均任务数,将第一定时任务分配给主任务执行节点;进一步地,当全部定时任务中还存在第二定时任务时,则将第二定时任务通过均发的方式分配给至少一个从任务执行节点。如果第一定时任务的数量大于平均任务数,则将第一定时任务的数量按照平均任务数分配给主任务执行节点,且将第二定时任务和剩余的第一定时任务(是指分配给主任务执行节点后剩余的第一定时任务)通过均发的方式分配给至少一个从任务执行节点。在这里说明的是,均发的方式是指:计算任务平均值(全部从任务执行节点待执行的定时任务的总数量与从任务执行节点的总数量相除得到任务平均值),如果任务平均值为小数,采用向上取整策略更新任务平均值,然后计算任务平均值与从任务执行节点的总数量相乘的值,如果该值大于欲执行定时任务的总数量时,可对其中一部分从任务执行节点以任务平均值分配任务,剩余的从任务执行节点以剩余的任务数分配任务;如果任务平均值为整数则保持原值,以任务平均值将定时任务平均分配给全部从任务执行节点。
在全部定时任务中,当仅存在第二定时任务时,将第二定时任务通过均发的方式分配给除主任务执行节点以外的至少一个从任务执行节点。
在完成全部定时任务分配后对分配到各任务执行节点的任务具体信息进行记录,即指分配信息。分配信息可包括分配到相应的任务执行节点的任务的数量以及所分配到的任务详情。
在具体分配任务时,如果该第一定时任务的数量小于或等于平均任务数,则主任务执行节点将第一定时任务分配给自身,也就是说,主任务执行节点执行的定时任务的任务数是第一定时任务的任务数。在这里说明的是,将第一定时任务分配给主任务执行节点后,将第二定时任务以均发的方式分配给从任务执行节点执行。具体过程为:如果计算的第一任务平均值(第二定时任务的总数量与从任务执行节点的总数量相除)为小数,采用向上取整策略更新第一任务平均值,接着如果第一任务平均值与从任务执行节点的总数量相乘的值大于第二定时任务的总数量时,可对其中一部分从任务执行节点以第一任务平均值分配任务,剩余的从任务执行节点以剩余的任务数分配任务。如果第一任务平均值为整数则保持原值,以第一任务平均值将定时任务平均分配给全部从任务执行节点。
在具体分配任务时,如果该第一定时任务的数量大于平均任务数,则主任务执行节点将第一定时任务按照平均任务数分配给自身。在这里说明的是,将第一定时任务分配给主任务执行节点后,将分配给主任务执行节点后剩余的第一定时任务和第二定时任务以均发的方式分配给从任务执行节点执行。具体过程为:如果计算的第二任务平均值(第二定时任务和所述剩余的第一定时任务的数量之和与从任务执行节点的总数量相除)为小数,采用向上取整策略更新第二任务平均值,接着如果第二任务平均值与从任务执行节点的总数量相乘的值大于第二定时任务和所述剩余的第一定时任务的数量之和时,可对其中一部分从任务执行节点以第二任务平均值分配任务,剩余的从任务执行节点以剩余的任务数分配任务。如果第二任务平均值为整数则保持原值,以第二任务平均值将定时任务平均分配给全部从任务执行节点。
例如,待执行的定时任务的总数量为10个,任务执行节点的总数量为3个,其中1个主任务执行节点,2个从任务执行节点,预设时间阈值设定为2s,计算平均任务数为4个(定时任务的总数量与任务执行节点的总数量相除然后向上取整),从而能够涵盖所有定时任务。
如果小于或等于预设时间阈值的任务有2个,即2个定时任务为第一定时任务,则剩余的8个定时任务为第二定时任务。第一定时任务的数量小于平均任务数,因为主任务执行节点负责任务调度,则由主任务执行节点执行该2个第一定时任务。此时将剩余的8个第二定时任务平均分配给2个从任务执行节点执行,即2个从任务执行节点均执行4个第二定时任务。这样分配定时任务不会使任务受网路传输的影响,能够避免因网络传输的时间消耗导致分配给从任务执行节点的过程中可能错过最佳执行时间。因此能够保证定时任务准时执行。
如果小于或等于预设时间阈值的任务有5个,即5个定时任务为第一定时任务,则剩余的5个定时任务为第二定时任务。第一定时任务的数量大于平均任务数,则主任务执行节点的任务数为平均任务数4个。此时将剩余的1个第一定时任务和5个第二定时任务按照均发的方式分配给2个从任务执行节点执行。其中,在对5个第二定时任务和所述剩余的1个第一定时任务进行分配时,可将1个第一定时任务优先分配给执行情况较好的从任务执行节点。这样分配定时任务不会使任务受网路传输的影响,能够避免因网络传输的时间消耗导致分配给从任务执行节点的过程中可能错过最佳执行时间。因此能够保证定时任务准时执行。
每个任务执行节点(包括主任务执行节点和从任务执行节点)收到定时任务后,自行调度任务,根据定时任务生成自己的待执行的任务池,主任务执行节点则执行自己任务池中分配到的定时任务,从任务执行节点接收到定时任务后,异步执行定时任务,记录任务执行情况。
通过上述的任务分配方案,可以使定时任务在多个任务执行节点间均衡分布,在避免资源浪费、造成空耗资源的基础上,还能够保证任务执行节点之间定时任务的均衡,对任务有效进行分配和调度。
另外,在本申请的另一个具体实施方式中,还包括如下步骤,如图3所示:
S24、对新增定时任务进行任务分配。
具体来说,当系统接收到新增的定时任务后,如果新增定时任务为第一定时任务,则将新增定时任务分配给主任务执行节点和/或至少一个从任务执行节点,如果该新增定时任务为第二定时任务,则将该新增定时任务分配给至少一个从任务执行节点。也就是说,如果此时主任务执行节点被分配的定时任务的数量已经达到该平均任务数,则将该新增定时任务分配给从任务执行节点;或者说如果将新增定时任务分配给主任务执行节点会使原先未达到该平均任务数变为超出平均任务数,则将部分新增定时任务分配给主任务执行节点,剩余的新增定时任务则分配给从任务执行节点。
如果新增定时任务为第二定时任务,则将新增定时任务分配给至少一个从任务执行节点。具体地,可将新增定时任务分配给从任务执行节点中执行任务数量最少的从任务执行节点。如果各从任务执行节点的数量一致,随机选择一从任务执行节点分配任务。另外,在新增定时任务后,同步更新主任务执行节点和各个从任务执行节点的执行任务的数量以及分配的任务详情。
还有,在本申请的又一个具体实施方式中,还包括如下步骤,如图4所示:
S25、当有定时任务被删除时重新计算平均任务数。
具体来说,是指如果发生定时任务被删除的情况,则将该定时任务从对应任务执行节点中予以删除,然后返回到步骤S21,即从计算平均任务数开始重新进行定时任务的分配。
还有,在本申请的又一个具体实施方式中,还包括如下步骤,如图5所示:
S26、当定时任务被修改或发生严重不均衡时重新执行任务分配。
具体来说,是指如果定时任务被修改,这里的修改包括定时任务的定时时间发生变化,导致相应执行间隔发生变化,此时返回到步骤S21重新计算平均任务数,以便重新进行定时任务的分配;另外,如果发生严重不平衡时,也返回到步骤S21重新计算平均任务数,以便重新进行定时任务的分配。这里的严重不均衡是指当第一定时任务在从任务执行节点的个数超过平均任务数,或主任务执行节点执行有第二定时任务且从任务执行节点执行有第一定时任务时。
还有,在本申请的又一个具体实施方式中,还包括如下步骤,如图6所示:
S27、当主任务执行节点宕机时重新进行定时任务分配。
具体来说,当主任务执行节点发生宕机时,则收回该主任务执行节点中的定时任务,重新通过诸如Raft协议的竞选机制从原来的所有从任务执行节点中选出新的主任务执行节点,并修改从任务执行节点的数量。然后,返回到步骤S21重新计算平均任务数,以便重新进行定时任务的分配。其中,主任务执行节点发生宕机是指在从任务执行节点在预设次数下未收到主任务执行节点的心跳探测信息时(主任务执行节点会按照预设心跳时间定时给从任务执行节点发送心跳探测信息)则认为主任务执行节点服务异常,停止主任务执行节点的工作。在这里补充说明的是,如果所述发生宕机的主任务执行节点发送信号给新的主任务执行节点通知服务正常时,所述发生宕机的主任务执行节点重新参与进行定时任务的分配。在这里进一步补充说明的是,当主任务执行节点发生宕机时,则可将宕机的主任务执行节点下的定时任务直接分配给除主任务执行节点外的从任务执行节点,其中,优先分配给执行情况较好的从任务执行节点。进一步地,在从任务执行节点之间定时任务分配严重不均衡时,则对所有定时任务重新进行定时任务的分配。
还有,在本申请的又一个具体实施方式中,还包括如下步骤,如图7所示:
S28、当从任务执行节点宕机时重新进行定时任务分配。
具体来说,当从任务执行节点发生宕机时,则收回该从任务执行节点中的定时任务,并修改从任务执行节点的数量。然后,返回到步骤S21重新计算平均任务数,以便重新进行定时任务的分配。其中,从任务执行节点发生宕机是指在主任务执行节点在预设次数下未收到某个从任务执行节点的心跳探测信息时(从任务执行节点会按照预设心跳时间定时给主任务执行节点发送心跳探测信息)则认为该从任务执行节点服务异常,停止该从任务执行节点的工作。在这里补充说明的是,如果所述发生宕机的从任务执行节点发送信号给主任务执行节点通知服务正常时,所述发生宕机的从任务执行节点重新参与进行定时任务的分配。
在本实施例中,可以在包括步骤S21、S22和S23的基础上,可以再包括步骤S24、S25、S26、S27和S28中的一个,具体如图3、图4、图5、图6和图7所示,还可以包括步骤S24、S25、S26、S27和S28中的部分或全部,这里不再赘述。通过后续步骤的执行,本方案还可以根据任务变化或节点变化灵活修改各个任务执行节点的执行任务数,做到各个任务执行节点根据负载情况执行最优的任务数,并做到缩小最小间隔任务的最小执行时差,并且实现实时计算以对任务执行节点重新调度分配任务。。
实施例二
图8为本申请实施例的一种分布式任务的任务调度装置的框图。
本实施例提供的任务调度方法应用于分布式系统,该分布式系统包括多个任务执行节点,每个任务执行节点一般来说可由相应的服务器实现,其中多个任务执行节点可包括一个主任务执行节点和至少一个从任务执行节点。所有任务执行节点可通过网络实现连接,并且任务执行节点之间定时进行心跳探测。
如图8所示,本实施例提供的任务调度装置具体包括启动控制模块10和分配执行模块20。
启动控制模块10用于启动多个任务执行节点,并使主任务执行节点获取全部定时任务的数量和多个任务执行节点的数量。
启动多个任务执行节点即启动该分布式系统内待执行任务的所有任务执行节点,并从中选出主任务执行节点和相应的从任务执行节点。该模块的执行过程与上面步骤S1的内容相同,这里不再赘述。
分配执行模块20用于根据定时任务之间的执行间隔和定时任务的数量将全部定时任务向多个任务执行节点进行任务分配。
具体来说,当主任务执行节点接收用户通过web页面添加的全部定时任务时,该分配执行模块根据所有定时任务之间的执行间隔和定时任务的数量向所有任务执行节点进行任务分配。这里不仅包括向其他从任务执行节点进行任务分配,还包括对自身进行分配。
从上述技术方案可以看出,本实施例提供了一种分布式任务的任务调度装置,该装置应用于分布式系统,分布式系统包括多个任务执行节点,多个任务执行节点包括主任务执行节点和至少一个从任务执行节点。该任务调度方法为启动多个任务执行节点,并使主任务执行节点获取全部定时任务和任务执行节点的数量;根据定时任务之间的执行间隔和数量将全部定时任务向多个任务执行节点进行任务分配。通过任务分配使系统中所有任务执行节点都有任务可执行,而不是仅由单个任务执行节点工作,从而提高了任务执行节点的利用率和执行效率,避免了资源空耗和浪费。
在本申请的一个具体实施方式中,该模块包括分配启动单元21、任务分类单元22和任务分配单元23,如图9所示。
分配启动单元21用于计算所有任务执行节点的平均任务数。
具体来说,根据多个任务执行节点的数量和定时任务的数量计算每个任务执行节点的平均任务数。平均任务数的计算策略可设置为:通过定时任务的总数量与任务执行节点的总数量相除得到初始平均值,其中,如果得到的初始平均值为小数,则将初始平均值向上取整得到值作为平均任务数,如果得到的初始平均值为整数,则直接将初始平均值作为平均任务数。其中,平均任务数表示理论上平均分配到每个任务执行节点的定时任务数。当平均任务数与任务执行节点的总数两相乘的值大于定时任务的总数量时,可对其中一部分任务执行节点以平均任务数分配任务,剩余任务执行节点以剩余的任务数分配任务。例如,定时任务的数量10个,要执行任务的所有任务执行节点的数量为3个,计算得到初始平均值约为3.33,初始平均值为小数,则将初始平均值向上取整得到的值作为平均任务数,则平均任务数为4个,则可对其中2个任务执行节点按照平均任务数分配任务,剩余1个任务执行节点按照剩余的任务数分配任务,则对该3个任务执行节点的任务分配数分别为4、4、2。
任务分类单元22用于根据预设时间阈值确定第一定时任务和第二定时任务。
具体来说,根据预设时间阈值从全部定时任务中选出第一定时任务和/或第二定时任务。也就是说,全部定时任务中可仅包括第一定时任务、仅包括第二定时任务或包括第一定时任务和第二定时任务。该预设时间阈值可以提前规定,即用户可以从web页面中进行设定,例如预设时间阈值可以设定为2s。这里的第一定时任务是指全部定时任务中执行间隔小于或等于该预设时间阈值的定时任务,而执行间隔大于该预设时间阈值的定时任务则被确定为第二定时任务。
任务分配单元23用于根据平均任务数将第一定时任务和/或第二定时任务分配给主任务执行节点和至少一个从任务执行节点中的至少一个,并记录分配信息。
由于这里负责分配的为主任务执行节点,因此,主任务执行节点将第一定时任务即执行间隔较小的定时任务分配给自己。在全部定时任务中,当存在第一定时任务时,如果第一定时任务的数量小于或等于平均任务数,将第一定时任务分配给主任务执行节点;进一步地,当全部定时任务中还存在第二定时任务时,则将第二定时任务通过均发的方式分配给至少一个从任务执行节点。如果第一定时任务的数量大于平均任务数,则将第一定时任务的数量按照平均任务数分配给主任务执行节点,且将第二定时任务和剩余的第一定时任务(是指分配给主任务执行节点后剩余的第一定时任务)通过均发的方式分配给至少一个从任务执行节点。在这里说明的是,均发的方式是指:计算任务平均值(全部从任务执行节点待执行的定时任务的总数量与从任务执行节点的总数量相除得到任务平均值),如果任务平均值为小数,采用向上取整策略更新任务平均值,然后计算任务平均值与从任务执行节点的总数量相乘的值,如果该值大于欲执行定时任务的总数量时,可对其中一部分从任务执行节点以任务平均值分配任务,剩余的从任务执行节点以剩余的任务数分配任务;如果任务平均值为整数则保持原值,以任务平均值将定时任务平均分配给全部从任务执行节点。
在全部定时任务中,当仅存在第二定时任务时,将第二定时任务通过均发的方式分配给除主任务执行节点以外的至少一个从任务执行节点。
在完成全部定时任务分配后对分配到各任务执行节点的任务具体信息进行记录,即指分配信息。分配信息可包括分配到相应的任务执行节点的任务的数量以及所分配到的任务详情。
在具体分配任务时,如果该第一定时任务的数量小于或等于平均任务数,则主任务执行节点将第一定时任务分配给自身,也就是说,主任务执行节点执行的定时任务的任务数是第一定时任务的任务数。在这里说明的是,将第一定时任务分配给主任务执行节点后,将第二定时任务以均发的方式分配给从任务执行节点执行。具体过程为:如果计算的第一任务平均值(第二定时任务的总数量与从任务执行节点的总数量相除)为小数,采用向上取整策略更新第一任务平均值,接着如果第一任务平均值与从任务执行节点的总数量相乘的值大于第二定时任务的总数量时,可对其中一部分从任务执行节点以第一任务平均值分配任务,剩余的从任务执行节点以剩余的任务数分配任务。如果第一任务平均值为整数则保持原值,以第一任务平均值将定时任务平均分配给全部从任务执行节点。
在具体分配任务时,如果该第一定时任务的数量大于平均任务数,则主任务执行节点将第一定时任务按照平均任务数分配给自身。在这里说明的是,将第一定时任务分配给主任务执行节点后,将分配给主任务执行节点后剩余的第一定时任务和第二定时任务以均发的方式分配给从任务执行节点执行。具体过程为:如果计算的第二任务平均值(第二定时任务和所述剩余的第一定时任务的数量之和与从任务执行节点的总数量相除)为小数,采用向上取整策略更新第二任务平均值,接着如果第二任务平均值与从任务执行节点的总数量相乘的值大于第二定时任务和所述剩余的第一定时任务的数量之和时,可对其中一部分从任务执行节点以第二任务平均值分配任务,剩余的从任务执行节点以剩余的任务数分配任务。如果第二任务平均值为整数则保持原值,以第二任务平均值将定时任务平均分配给全部从任务执行节点。
例如,待执行的定时任务的总数量为10个,任务执行节点的总数量为3个,其中1个主任务执行节点,2个从任务执行节点,预设时间阈值设定为2s,计算平均任务数为4个(定时任务的总数量与任务执行节点的总数量相除然后向上取整),从而能够涵盖所有定时任务。
如果小于或等于预设时间阈值的任务有2个,即2个定时任务为第一定时任务,则剩余的8个定时任务为第二定时任务。第一定时任务的数量小于平均任务数,因为主任务执行节点负责任务调度,则由主任务执行节点执行该2个第一定时任务。此时将剩余的8个第二定时任务平均分配给2个从任务执行节点执行,即2个从任务执行节点均执行4个第二定时任务。这样分配定时任务不会使任务受网路传输的影响,能够避免因网络传输的时间消耗导致分配给从任务执行节点的过程中可能错过最佳执行时间。因此能够保证定时任务准时执行。
如果小于或等于预设时间阈值的任务有5个,即5个定时任务为第一定时任务,则剩余的5个定时任务为第二定时任务。第一定时任务的数量大于平均任务数,则主任务执行节点的任务数为平均任务数4个。此时将剩余的1个第一定时任务和5个第二定时任务按照均发的方式分配给2个从任务执行节点执行。其中,在对5个第二定时任务和所述剩余的1个第一定时任务进行分配时,可将1个第一定时任务优先分配给执行情况较好的从任务执行节点。这样分配定时任务不会使任务受网路传输的影响,能够避免因网络传输的时间消耗导致分配给从任务执行节点的过程中可能错过最佳执行时间。因此能够保证定时任务准时执行。
每个任务执行节点(包括主任务执行节点和从任务执行节点)收到定时任务后,自行调度任务,根据定时任务生成自己的待执行的任务池,主任务执行节点则执行自己任务池中分配到的定时任务,从任务执行节点接收到定时任务后,异步执行定时任务,记录任务执行情况。
通过上述的任务分配方案,可以使定时任务在多个任务执行节点间均衡分布,在避免资源浪费、造成空耗资源的基础上,还能够保证任务执行节点之间定时任务的均衡,对任务有效进行分配和调度。
另外,在本申请的另一个具体实施方式中,该分配执行模块还包括任务新增单元24,如图10所示:
任务新增单元用于对新增定时任务进行任务分配。
具体来说,当系统接收到新增的定时任务后,如果新增定时任务为第一定时任务,则将新增定时任务分配给主任务执行节点和/或至少一个从任务执行节点,如果该新增定时任务为第二定时任务,则将该新增定时任务分配给至少一个从任务执行节点。也就是说,如果此时主任务执行节点被分配的定时任务的数量已经达到该平均任务数,则将该新增定时任务分配给从任务执行节点;或者说如果将新增定时任务分配给主任务执行节点会使原先未达到该平均任务数变为超出平均任务数,则将部分新增定时任务分配给主任务执行节点,剩余的新增定时任务则分配给从任务执行节点。
如果新增定时任务为第二定时任务,则将新增定时任务分配给至少一个从任务执行节点。具体地,可将新增定时任务分配给从任务执行节点中执行任务数量最少的从任务执行节点。如果各从任务执行节点的数量一致,随机选择一从任务执行节点分配任务。另外,在新增定时任务后,同步更新主任务执行节点和各个从任务执行节点的执行任务的数量以及分配的任务详情。
还有,在在本申请的又一个具体实施方式中,该分配执行模块还包括任务删除单元25,如图11所示:
任务删除单元25用于当有定时任务被删除时重新计算平均任务数。
具体来说,是指如果发生定时任务被删除的情况,则将该定时任务从对应任务执行节点中予以删除,然后控制分配启动单元重新计算平均任务数,以便重新进行定时任务的分配。
还有,在本申请的又一个具体实施方式中,该分配执行模块还包括任务修改平衡单元26,如图12所示:
任务修改平衡单元用于当定时任务被修改或发生严重不均衡时重新执行任务分配。
具体来说,是指如果定时任务被修改,这里的修改包括定时任务的定时时间发生变化,导致相应执行间隔发生变化,此时控制分配启动单元重新计算平均任务数,以便重新进行定时任务的分配;另外,如果发生严重不平衡时,也控制分配启动单元重新计算平均任务数,以便重新进行定时任务的分配。这里的严重不均衡是指当第一定时任务在从任务执行节点的个数超过平均任务数,或主任务执行节点执行有第二定时任务且从任务执行节点执行有第一定时任务时。
还有,在本申请的又一个具体实施方式中,该分配执行模块还包括第一处置单元27,如图13所示:
第一处置单元用于当主任务执行节点宕机时重新进行定时任务分配。
具体来说,当主任务执行节点发生宕机时,则收回该主任务执行节点中的定时任务,重新通过诸如Raft协议的竞选机制从原来的所有从任务执行节点中选出新的主任务执行节点,并修改从任务执行节点的数量。然后,控制分配启动单元重新计算平均任务数,以便重新进行定时任务的分配。
其中,主任务执行节点发生宕机是指在从任务执行节点在预设次数下未收到主任务执行节点的心跳探测信息时(主任务执行节点会按照预设心跳时间定时给从任务执行节点发送心跳探测信息)则认为主任务执行节点服务异常,停止主任务执行节点的工作。在这里补充说明的是,如果所述发生宕机的主任务执行节点发送信号给新的主任务执行节点通知服务正常时,所述发生宕机的主任务执行节点重新参与进行定时任务的分配。在这里进一步补充说明的是,当主任务执行节点发生宕机时,则可将宕机的主任务执行节点下的定时任务直接分配给除主任务执行节点外的从任务执行节点,其中,优先分配给执行情况较好的从任务执行节点。进一步地,在从任务执行节点之间定时任务分配严重不均衡时,则对所有定时任务重新进行定时任务的分配。
还有,在本申请的又一个具体实施方式中,还包括第二处置单元28,如图14所示:
第二处置单元用于当从任务执行节点宕机时重新进行定时任务分配。
具体来说,当从任务执行节点发生宕机时,则收回该从任务执行节点中的定时任务,并修改从任务执行节点的数量。然后,控制分配启动单元重新计算平均任务数,以便重新进行定时任务的分配。
其中,从任务执行节点发生宕机是指在主任务执行节点在预设次数下未收到某个从任务执行节点的心跳探测信息时(从任务执行节点会按照预设心跳时间定时给主任务执行节点发送心跳探测信息)则认为该从任务执行节点服务异常,停止该从任务执行节点的工作。在这里补充说明的是,如果所述发生宕机的从任务执行节点发送信号给主任务执行节点通知服务正常时,所述发生宕机的从任务执行节点重新参与进行定时任务的分配。
在本实施例中,可以在包括分配启动单元、任务分类单元和任务分配单元的基础上,可以再包括任务新增单元、任务删除单元、任务修改平衡单元、第一处置单元和第二处置单元中中的一个,具体如图10、图11、图12、图13和图14所示,还可以包括任务新增单元、任务删除单元、任务修改平衡单元、第一处置单元和第二处置单元中的部分或全部,这里不再赘述。
通过后续方案,还可以根据任务变化或节点变化灵活修改各个任务执行节点的执行任务数,做到各个任务执行节点根据负载情况执行最优的任务数,并做到缩小最小间隔任务的最小执行时差,并且实现实时计算以对任务执行节点重新调度分配任务。
实施例三
图15为本申请实施例的一种电子设备的框图。
如图15所示,本实施例提供了一种电子设备,该电子设备可以理解为具有数据计算和信息处理的计算机或者服务器,该电子设备包括至少一个处理器101和存储器102,两者通过数据总线103连接。该存储器用于存储计算机程序或指令,该处理器用于执行该计算机程序或指令,从而使该电子设备能够实现实施例一种所公开的分布式任务的任务调度方法。
该任务调度方法为启动多个任务执行节点,并使主任务执行节点获取全部定时任务和任务执行节点的数量;根据定时任务之间的执行间隔和数量将全部定时任务向多个任务执行节点进行任务分配。通过任务分配使系统中所有任务执行节点都有任务可执行,而不是仅由单个任务执行节点工作,从而提高了任务执行节点的利用率和执行效率,避免了资源空耗和浪费。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种分布式任务的任务调度方法,应用于分布式系统,所述分布式系统包括多个任务执行节点,所述多个任务执行节点包括主任务执行节点和至少一个从任务执行节点,其特征在于,所述任务调度方法包括步骤:
启动所述多个任务执行节点,并使所述主任务执行节点获取全部定时任务的数量和所述多个任务执行节点的数量;
根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配。
2.如权利要求1所述的任务调度方法,其特征在于,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述任务执行节点进行任务分配,包括步骤:
根据所述多个任务执行节点的数量和所述定时任务的数量进行计算,得到每个所述任务执行节点的平均任务数;
根据预设时间阈值从所述全部定时任务选出第一定时任务和/或第二定时任务,所述第一定时任务为执行间隔小于或等于所述预设时间间隔的定时任务,所述第二定时任务为执行间隔大于所述预设时间阈值的定时任务;
根据所述平均任务数将所述第一定时任务和/或第二定时任务分配给所述主任务执行节点和所述至少一个从任务执行节点中的至少一个,并记录分配信息。
3.如权利要求2所述的任务调度方法,其特征在于,所述根据所述平均任务数将所述第一定时任务和/或第二定时任务分配给所述主任务执行节点和所述至少一个从任务执行节点中的至少一个包括步骤:
如果所述第一定时任务的数量小于或等于所述平均任务数,将所述第一定时任务分配给所述主任务执行节点,且将所述第二定时任务通过均发的方式分配给所述至少一个从任务执行节点;
如果所述第一定时任务的数量大于所述平均任务数,则将所述第一定时任务的数量按照所述平均任务数分配给所述主任务执行节点,且将所述第二定时任务和剩余的所述第一定时任务通过均发的方式分配给所述至少一个从任务执行节点。
4.如权利要求2所述的任务调度方法,其特征在于,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配,还包括步骤:
当发生定时任务新增时,如果新增定时任务为所述第一定时任务,则将所述新增定时任务分配给所述主任务执行节点和/或所述至少一个从任务执行节点;
如果所述新增定时任务为所述第二定时任务,则将所述新增定时任务分配给所述至少一个从任务执行节点。
5.如权利要求2所述的任务调度方法,其特征在于,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配,还包括步骤:
当原有所述定时任务被删除时,从对应的所述任务执行节点中删除被删除的定时任务,并返回到所述根据所述多个任务执行节点的数量和所述定时任务的数量进行计算步骤。
6.如权利要求2所述的任务调度方法,其特征在于,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配,还包括步骤:
当原有所述定时任务的执行时间被修改或者所述定时任务的分配发生严重不均衡时,返回到所述根据所述多个任务执行节点的数量和所述定时任务的数量进行计算步骤。
7.如权利要求2所述的任务调度方法,其特征在于,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述任务执行节点进行任务分配,还包括步骤:
当所述主任务执行节点发生宕机时,根据竞选机制从所述从任务执行节点中选出新的主任务执行节点,并修改所述从任务执行节点的数量,然后,返回到所述根据所述多个任务执行节点的数量和所述定时任务的数量进行计算步骤。
8.如权利要求2所述的任务调度方法,其特征在于,所述根据所述定时任务之间的执行间隔和所述定时任务的数量将所述全部定时任务向所述多个任务执行节点进行任务分配,还包括步骤:
当所述从任务执行节点发生宕机时,收回发生宕机的所述从任务执行节点中的定时任务,或者修改所述从任务执行节点的数量,然后返回到所述根据所述多个任务执行节点的数量和所述定时任务的数量进行计算步骤。
9.一种分布式任务的任务调度装置,应用于分布式系统,所述分布式系统包括多个任务执行节点,所述多个任务执行节点包括主任务执行节点和至少一个从任务执行节点,其特征在于,所述任务调度装置包括:
启动控制模块,被配置为启动所述多个任务执行节点,并使所述主任务执行节点获取全部定时任务和所述任务执行节点的数量;
分配执行模块,被配置为根据所述定时任务之间的执行间隔和所述数量将所述全部定时任务向所述任务执行节点进行任务分配。
10.一种电子设备,其特征在于,包括至少一个处理器和与所述处理器连接的存储器,其中:
所述存储器用于存储计算机程序或指令;
所述处理器用于执行所述计算机程序或指令,以使所述电子设备实现如权利要求1至8任一项所述的任务调度方法。
CN202110611732.4A 2021-06-02 2021-06-02 分布式任务的任务调度方法、装置及电子设备 Active CN113051063B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110611732.4A CN113051063B (zh) 2021-06-02 2021-06-02 分布式任务的任务调度方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110611732.4A CN113051063B (zh) 2021-06-02 2021-06-02 分布式任务的任务调度方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113051063A true CN113051063A (zh) 2021-06-29
CN113051063B CN113051063B (zh) 2021-09-17

Family

ID=76518630

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110611732.4A Active CN113051063B (zh) 2021-06-02 2021-06-02 分布式任务的任务调度方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113051063B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116149827A (zh) * 2023-04-04 2023-05-23 云粒智慧科技有限公司 分布式任务调度系统和分布式任务调度执行系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162656A1 (en) * 2005-11-28 2007-07-12 International Business Machines Corporation Method for efficient communication between a host library controller and a medium changer library
CN103488691A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 任务调度装置和任务调度方法
CN106775977A (zh) * 2016-12-09 2017-05-31 北京小米移动软件有限公司 任务调度方法、装置及系统
CN106909451A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种分布式任务调度系统及方法
CN108304255A (zh) * 2017-12-29 2018-07-20 北京城市网邻信息技术有限公司 分布式任务调度方法及装置、电子设备及可读存储介质
CN110008257A (zh) * 2019-04-10 2019-07-12 深圳市腾讯计算机系统有限公司 数据处理方法、装置、系统、计算机设备和存储介质
CN110247954A (zh) * 2019-05-15 2019-09-17 南京苏宁软件技术有限公司 一种分布式任务的调度方法及系统
CN110572430A (zh) * 2019-07-30 2019-12-13 云南昆钢电子信息科技有限公司 一种基于定时任务的身份数据同步系统及方法
CN112000445A (zh) * 2020-07-08 2020-11-27 苏宁云计算有限公司 分布式任务调度的方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162656A1 (en) * 2005-11-28 2007-07-12 International Business Machines Corporation Method for efficient communication between a host library controller and a medium changer library
CN103488691A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 任务调度装置和任务调度方法
CN106775977A (zh) * 2016-12-09 2017-05-31 北京小米移动软件有限公司 任务调度方法、装置及系统
CN106909451A (zh) * 2017-02-28 2017-06-30 郑州云海信息技术有限公司 一种分布式任务调度系统及方法
CN108304255A (zh) * 2017-12-29 2018-07-20 北京城市网邻信息技术有限公司 分布式任务调度方法及装置、电子设备及可读存储介质
CN110008257A (zh) * 2019-04-10 2019-07-12 深圳市腾讯计算机系统有限公司 数据处理方法、装置、系统、计算机设备和存储介质
CN110247954A (zh) * 2019-05-15 2019-09-17 南京苏宁软件技术有限公司 一种分布式任务的调度方法及系统
CN110572430A (zh) * 2019-07-30 2019-12-13 云南昆钢电子信息科技有限公司 一种基于定时任务的身份数据同步系统及方法
CN112000445A (zh) * 2020-07-08 2020-11-27 苏宁云计算有限公司 分布式任务调度的方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116149827A (zh) * 2023-04-04 2023-05-23 云粒智慧科技有限公司 分布式任务调度系统和分布式任务调度执行系统

Also Published As

Publication number Publication date
CN113051063B (zh) 2021-09-17

Similar Documents

Publication Publication Date Title
CN112162865A (zh) 服务器的调度方法、装置和服务器
CN105159782A (zh) 基于云主机为订单分配资源的方法和装置
CN111381950A (zh) 一种面向边缘计算环境基于多副本的任务调度方法和系统
CN103019853A (zh) 一种作业任务的调度方法和装置
JP6083290B2 (ja) 分散処理システム
CN109992422A (zh) 一种面向gpu资源的任务调度方法、装置和系统
EP2710470A1 (en) Extensible centralized dynamic resource distribution in a clustered data grid
CN112269641A (zh) 一种调度方法、装置、电子设备及存储介质
CN113032102B (zh) 资源重调度方法、装置、设备和介质
CN112445615A (zh) 一种线程的调度系统、计算机设备和存储介质
JP2016126677A (ja) 負荷算出方法、負荷算出プログラム及び負荷算出装置
CN113051063B (zh) 分布式任务的任务调度方法、装置及电子设备
CN114625533A (zh) 分布式任务调度方法、装置、电子设备及存储介质
CN106059940A (zh) 一种流量控制方法及装置
CN112073532B (zh) 一种资源分配的方法及装置
CN109189581B (zh) 一种作业调度方法和装置
CN116643858A (zh) 基于业务优先级pod再调度方法、装置、设备及介质
JP2012160045A (ja) 仮想化環境リソース管理構成変更システム、及びプログラム
CN115629854A (zh) 分布式任务调度方法、系统、电子设备和存储介质
CN111767125B (zh) 任务执行方法、装置、电子设备、存储介质
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
CN111176848A (zh) 集群任务的处理方法、装置、设备和存储介质
CN112433838A (zh) 批量调度方法、装置、设备及计算机存储介质
CN106844021B (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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 716, 7 / F, building 2, 28 Andingmen East Street, Dongcheng District, Beijing

Patentee after: Beijing Easy Yikang Information Technology Co.,Ltd.

Address before: Room 716, 7 / F, building 2, 28 Andingmen East Street, Dongcheng District, Beijing

Patentee before: BEIJING QINGSONGCHOU INFORMATION TECHNOLOGY Co.,Ltd.