CN105468450A - 任务调度方法及系统 - Google Patents
任务调度方法及系统 Download PDFInfo
- Publication number
- CN105468450A CN105468450A CN201511007956.5A CN201511007956A CN105468450A CN 105468450 A CN105468450 A CN 105468450A CN 201511007956 A CN201511007956 A CN 201511007956A CN 105468450 A CN105468450 A CN 105468450A
- Authority
- CN
- China
- Prior art keywords
- task
- scheduling
- execution time
- node
- database
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种任务调度方法及系统,调度节点根据预设算法从任务数据库中获取属于本调度节点的预设时间段内的待处理任务。调度节点将获得的待处理任务存储在本调度节点的任务资源池中。然后,任务资源池中的任务到达执行时间时,调度节点向业务节点发送任务触发消息,业务节点根据该任务触发消息处理待处理任务。该任务调度过程,调度节点能够预先从任务数据库中拉取属于自身的预设时间段内的多个任务,减少对任务数据库的访问次数,因此,提高了单个调度节点的处理能力;而且,该任务调度过程不需要使用数据库的共享锁机制,降低了等待资源,提高了海量任务并发处理性能。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种任务调度方法及系统。
背景技术
云服务器是一种简单、高效、处理能力可弹性伸缩的计算服务。弹性伸缩是指根据用户的业务需求和策略,自动调整其弹性计算资源的管理服务,能够在业务增长时自动增加云主机实例,并在业务下降时自动减少云主机实例。用户可以指定定时策略、周期策略以及监控触发策略实现弹性伸缩;其中,定时策略和周期策略在公有云场景下会产生海量的任务,这些任务需要调度中心来调度。
调度集群中每个调度节点都执行不同的任务,对于任意一个调度节点而言,每执行一个任务都需要读写一次数据库,读取要执行的任务,从而导致单个调度节点的处理能力依赖于数据库的读写能力;而且,为了保证对于给定的任务只在单独的一个调度节点上执行,当前方案的处理方式是:当调度集群里最先能够抢占到该任务的调度节点执行该任务时,会对数据库里对应的任务加共享锁,这样,其它的调度节点就不能占用该共享锁,直到上一个节点释放共享锁后才能占用;此时,其它的调度节点处于等待状态,从而出现大量的等待资源,这种情况随着节点的增加会越来越严重。
发明内容
为了解决上述技术问题,本发明实施例中提供了一种任务调度方法及系统,技术方案如下:
第一方面,本发明提供一种任务调度方法,应用于任务调度系统中,所述任务调度系统包括任务数据库、调度集群和业务集群;其中,所述调度集群包括至少一个调度节点,所述业务集群包括至少一个业务节点,所述任务数据库中存储待处理的任务,所述至少一个调度节点从所述任务数据库中读取任务并调用所述业务节点处理读取的任务,所述方法包括:
调度节点根据预设算法从所述任务数据库中获取属于所述调度节点的预设时间段内的待处理任务,所述预设时间段内的待处理任务是执行时间超前于当前时刻的时间差处于所述预设时间段内的任务;然后,调度节点将所述预设时间段内的待处理任务存储在所述调度节点的任务资源池中;当到达所述待处理任务的当前执行时间时,调度节点向所述业务节点发送任务触发消息;最终,业务节点根据所述任务触发消息处理所述待处理任务。
第一方面提供的任务调度方法,调度节点能够预先从任务数据库中拉取属于自身的预设时间段内的多个任务,从而不需要每执行一个任务就访问一次任务数据库,减少对任务数据库的访问次数,因此,提高了单个调度节点的处理能力;而且,该任务调度过程不需要使用数据库的共享锁机制,从而避免各个调度节点之间任务执行时发生冲突,降低了等待资源,提高了海量任务并发处理性能。
结合第一方面,在第一方面的第一种可能的实现方式中,所述调度节点利用预设算法获取属于所述调度节点的预设时间段内的待处理任务,包括:
所述调度节点获取所述调度集群所包含的调度节点的总数,并确定自身在所述调度集群中的位置数;然后,获取所述任务数据库中任务创建时间戳相对于所述调度节点的总数的余数,确定余数与所述调度节点的位置数相同的预设时间段内的任务为所述待处理任务。
结合第一方面,在第一方面的第二种可能的实现方式中,所述方法还包括:
当确定所述调度集群包含的调度节点的数量更新时,所述调度节点根据任务的执行时间检测所述任务数据库中是否存在属于所述调度节点的未触发任务,所述未触发任务是超过任务的执行时间且未执行的任务;当确定存在所述未触发任务时,所述调度节点从所述任务数据库中获取所述未触发任务,并触发所述未触发任务。
第一方面的第二种可能的实现方式提供的任务调度方法,当调度集群所包含的调度节点总数发生变化时,调度节点检测到未触发任务后立即触发,保证任务不会丢失。
结合第一方面,在第一方面的第三种可能的实现方式中,所述任务调度系统还包括任务执行数据库,所述任务执行数据中存储被触发的任务;所述任务触发消息包含所述待处理任务的任务标识和当前执行时间;
所述业务节点根据所述任务触发消息处理所述待处理任务,包括:所述业务节点根据所述任务触发消息所包含的任务标识和当前执行时间,更新所述任务执行数据库内的任务;当所述任务执行数据库更新成功后,所述业务节点处理所述任务标识对应的任务。
第一方面的第三种可能的实现方式中,业务节点通过更新任务执行数据库中的任务的方式,避免重复任务,从而避免使用共享锁机制也能够解决任务重复执行的问题。而且,不使用共享锁机制能够降低等待资源,提高任务并发处理性能。
结合第一方面,在第一方面的第四种可能的实现方式中,所述业务节点根据所述任务触发消息所包含的任务标识和当前执行时间,更新所述任务执行数据库内的任务,包括:
所述业务节点判断所述任务执行数据库中是否存在所述任务标识对应的任务;如果所述任务执行数据库中不存在所述任务标识对应的任务,所述业务节点在所述任务执行数据库中添加所述任务标识对应的任务,且所述任务标识对应的任务的执行时间为所述当前执行时间;如果所述任务执行数据库中存在所述任务标识对应的任务,所述业务节点判断所述任务标识对应任务的执行时间是否是所述当前执行时间;如果所述任务标识对应任务的执行时间不是所述当前执行时间,则将所述任务的执行时间更新为所述当前执行时间,并确定所述任务执行数据库更新成功;如果所述任务标识对应任务的执行时间是所述当前执行时间,则确定所述任务执行数据库更新失败。
第二方面,本发明提供一种任务调度系统,该系统包括任务数据库、调度集群和业务集群;其中,所述调度集群包括至少一个调度节点,所述业务集群包括至少一个业务节点,所述任务数据库中存储待处理的任务,所述至少一个调度节点从所述任务数据库中读取任务并调用所述业务节点处理读取的任务;调度节点用于执行第一方面提供的任务调度方法;业务节点用于执行第一方面提供的任务调度方法。
由以上技术方案可见,本发明实施例提供的任务调度方法,调度节点根据预设算法从任务数据库中获取属于本调度节点的预设时间段内的待处理任务,待处理任务是指任务的执行时间超前于当前时刻的时间差处于预设时间段内的全部任务。调度节点将获得的待处理任务存储在本调度节点的任务资源池中。然后,任务资源池中的任务到达执行时间时,调度节点向业务节点发送任务触发消息,业务节点根据该任务触发消息处理待处理任务。本发明提供的任务调度过程中,调度节点能够预先从任务数据库中拉取属于自身的预设时间段内的多个任务,从而不需要每执行一个任务就访问一次任务数据库,减少对任务数据库的访问次数,因此,提高了单个调度节点的处理能力;而且,该任务调度过程不需要使用数据库的共享锁机制,从而避免各个调度节点之间任务执行时发生冲突,降低了等待资源,提高了海量任务并发处理性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种任务调度系统构架的示意图;
图2为本发明实施例提供的一种任务调度方法的流程示意图;
图3为本发明实施例提供另一种任务调度方法的流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
参见图1,为本发明实施例提供的一种任务调度系统架构的示意图,如图1所示,任务调度系统包括调度集群、业务集群和任务数据库。
调度集群包括至少一个调度节点,不同的调度节点可以部署在同一个服务器中,也可以分别部署在不同的服务器中。调度节点用于对任务进行定时或周期性调度,调度节点可以部署在服务器中。其中,图1中调度节点包括120、130和140,这三个调度节点分别部署在不同的服务器中。
业务集群包括至少一个业务节点,不同的业务节点可以部署在同一个服务器中,也可以分别部署在不同的服务器中。业务节点用于当调度节点触发任务时,调用业务节点中的接口进行业务处理,业务节点可以部署在服务器中。图1中150、160和170是业务节点,这三个业务节点也部署在不同的服务器中。业务集群根据集群内各个业务节点的负载情况分配触发的任务。
其中,调度节点和业务节点可以部署在同一个服务器中,也可以部署在不同的服务器中。
任务数据库用于存储创建的任务,以及调度集群中各个调度节点的信息。图1中,任务数据库110部署在服务器中。
参见图2,为本发明实施例提供的一种任务调度方法的流程示意图,该方法应用于图1所示的任务调度系统中,本实施例适用于调度集群中调度节点总数保持不变的场景中,本实施例以调度集群中的一个调度节点为进行说明,其它调度节点的处理流程相同。
如图2所示,该方法包括以下步骤:
S110,调度节点根据预设算法从所述任务数据库中获取属于所述调度节点的预设时间段内执行的待处理任务。
预设算法需要满足以下要求,能够将大量任务平均分配给多个节点;例如,预设算法可以是联模求余算法或一致性哈希算法等。
所述预设时间段内的待处理任务是执行时间超前于当前时刻的时间差处于所述预设时间段内的任务。例如,获取2min内要执行的任务,即,执行时间超过当前时刻2min以内的任务。
下面以利用联模求余算法为例说明获取待处理任务的过程:
调度集群中的各个调度节点首次启动时,会向任务数据库发送节点注册信息,任务数据库会存储调度节点的信息,并根据调度节点发送注册信息的时间(即,注册时间)对调度节点进行排序,注册时间早的调度节点,相应的位置排在前面,即调度节点的位置数较小。各个调度节点通过访问任务数据库中的调度节点信息获知自身在调度集群中的位置数,以及感知其它调度节点的状态。
任务数据库中每个任务都具有创建时间戳,即该任务的创建时间。根据任务的创建时间戳对调度集群中的调度节点总数求余,得到的余数即表明位置数为该余数的调度节点的任务。
例如,调度集群包含3个调度节点,3个调度节点的位置数分别是0,1,2;如果某个任务的创建时间戳对3进行求余运算得到的余数是2,则该任务属于位置数是2的调度节点。
S120,调度节点将所述预设时间段内的待处理任务存储在所述调度节点的任务资源池中。
调度节点每次访问任务数据库拉取多个任务,并将这多个任务存储在本地的任务资源池中。这样,能够避免调度节点每次访问任务数据只拉取一个任务,从而减少了调度节点访问任务数据库的次数,进而降低了由于访问任务数据库对调度节点内存的占用率。
S130,当到达所述待处理任务的执行时间时,所述调度节点向所述业务节点发送任务触发消息。
调度节点会根据任务计算公式计算出该任务的执行时间,当达到该任务的执行时间时,调度节点向业务节点发送任务触发消息,以调用业务节点的接口,并由业务节点完成业务的处理,该任务触发消息包含任务标识和当前执行时间。
S140,所述业务节点根据所述任务触发消息处理所述待处理任务。
业务集群可以通过一个统一的接口接收调度节点发送的任务触发消息,并根据业务集群内各个业务节点的负载情况分配触发的待处理任务,分配到该待处理任务的业务节点执行相应的任务。
例如,待处理任务的具体内容是在预定时间向某邮箱地址发送内容为“****”的邮件,则当达到预定时间时,业务节点在预定时间向预定的邮箱地址发送预设内容的邮件。
本实施例提供的任务调度方法,调度节点根据预设算法从任务数据库中获取属于本调度节点的预设时间段内的待处理任务,待处理任务是指任务的执行时间超前于当前时刻的时间差处于预设时间段内的全部任务。调度节点将获得的待处理任务存储在本调度节点的任务资源池中。然后,任务资源池中的任务到达执行时间时,调度节点向业务节点发送任务触发消息,业务节点根据该任务触发消息处理待处理任务。本发明提供的任务调度过程中,调度节点能够预先从任务数据库中拉取属于自身的预设时间段内的多个任务,从而不需要每执行一个任务就访问一次任务数据库,减少对任务数据库的访问次数,因此,提高了单个调度节点的处理能力;而且,该任务调度过程不需要使用数据库的共享锁机制,从而避免各个调度节点之间任务执行时发生冲突,降低了等待资源,提高了海量任务并发处理性能。
参见图3,为本发明实施例提供的另一种任务调度方法的流程示意图,本实施例应用于调度节点的总数发生变化时的场景中,如图3所示,该方法可以包括以下步骤:
S210,调度节点根据联模求余算法从任务数据库中获取属于自身的预设时间段内的待处理任务,并将待处理任务存储在任务资源池中。
S220,当调度节点按照指定时间检测调度集群中的调度节点数量有更新时,该调度节点重新获取待处理任务。
调度节点启动时,会启动以下四种线程:心跳线程、任务拉取线程、丢失任务处理线程和任务处理线程;
其中,心跳线程用于周期性刷新和查询任务数据库中存储的调度节点的信息。当检测到任务数据库中存在超过预设数量个心跳周期未更新的调度节点时,确定该调度节点为异常节点。该异常节点被调度集群中的其它调度节点感知到。
任务拉取线程根据联模求余算法计算得到的调度节点的待处理任务与调度集群中的调度节点的总数有关,当调度集群中调度节点的总数发生变化时,各个调度节点对应的待处理任务可能有所变化,因此,当调度节点的总数变化后,重新从任务数据库中拉取待处理的任务。
丢失任务处理线程用于检测超过执行时间仍未执行的任务,即未触发任务。
任务处理线程,用于按照任务的执行时间触发任务资源池中的任务。可以根据调度节点所在服务器的处理能力确定该任务处理线程的启动数量,例如,可以配置为200个,即可以同时触发200个任务,保证任务资源池中的任务高效并发触发。
S230,调度节点检测任务数据库中是否存在属于自身的未触发任务;未触发任务是超过任务的执行时间但未执行的任务。
调度节点的总数发生变化后,可能会导致某些要触发的任务没有被任何调度节点拉入自身的任务资源池中,即任何调度节点都不会调度该任务,导致该任务丢失。这种任务能够被调度节点中的丢失任务处理线程发现并立即触发。
丢失任务处理线程也具有从任务数据库中拉取任务的功能,丢失任务处理线程从任务数据库中获取属于本调度节点的任务,并根据任务计算公式计算出任务的执行时间。然后,根据各个任务的执行时间检测是否存在超过执行时间未执行的任务,如果存在,则认为该任务是未触发任务。检测到未触发任务后立即触发未触发任务,保证任务不会丢失。
S240,当检测到存在未触发任务时,向业务节点发送任务触发消息。
S250,业务节点根据所述任务触发消息所包含的任务标识和当前执行时间,更新所述任务执行数据库内的任务;
当调度节点的总数发生变化后,还可能导致某个任务同时存在于两个调度节点的任务资源池中,即存储重复任务。然后,由业务节点检测重复任务,业务节点会维护一个任务执行数据库,任务执行数据库中存储被调度节点触发后由业务节点处理的任务。
当业务节点首次执行某个任务时,任务执行数据库中并没有该任务,此时,需要根据业务节点任务触发消息向任务执行数据库中写入该任务的任务标识和当前执行时间。任务写入任务执行数据库后,该任务才会被业务节点处理。
如果该任务是周期性任务,当在下一个周期再次执行该任务时,此时该任务对应的当前执行时间与上一周期的执行时间不同,因此,需要根据本周期接收到的任务触发消息将任务执行数据库中该任务的执行时间更新为本周期的执行时间,只有更新成功后业务节点才会执行该任务。
如果存在重复任务,业务节点会接收到两个相同的任务触发消息,当业务节点根据先接收到的任务触发消息(或者,同时接收到的两个任务触发消息中的任意一个)更新任务执行数据库中的任务,并向业务节点返回更新成功响应消息。由于两个任务触发消息中的当前执行时间相同,即另一条触发消息的当前执行时间与任务执行数据库中相同任务标识的任务对应的当前执行时间相同,任务执行数据库不会根据另一条任务触发消息更新对应的任务,向业务节点返回更新失败响应消息。
具体的,业务节点接收到任务触发消息后,先判断所述任务执行数据库中是否存在所述任务标识对应的任务;如果所述任务执行数据库中不存在所述任务标识对应的任务,所述业务节点在所述任务执行数据库中添加所述任务标识对应的任务,且所述任务标识对应的任务的执行时间为所述当前执行时间;
如果所述任务执行数据库中存在所述任务标识对应的任务,所述业务节点判断所述任务标识对应任务的执行时间是否是所述当前执行时间;如果所述任务标识对应任务的执行时间不是所述当前执行时间,则将所述任务的执行时间更新为所述当前执行时间,并确定所述任务执行数据库更新成功;如果所述任务标识对应任务的执行时间是所述当前执行时间,则确定所述任务执行数据库更新失败。
S260,当所述任务执行数据库更新成功后,所述业务节点处理所述任务标识对应的任务。
当业务节点接收到任务执行数据库任务更新成功的响应消息后,处理任务标识对应的任务。
S270,当所述任务执行数据库更新失败后,所述业务节点放弃所述任务触发消息。
本实施例提供的任务调度方法,当调度集群所包含的调度节点总数发生变化时,调度节点检测到未触发任务后立即触发,保证任务不会丢失。业务节点通过更新任务执行数据库中的任务的方式,避免重复任务,从而避免使用共享锁机制也能够解决任务重复执行的问题。而且,不使用共享锁机制能够降低等待资源,提高任务并发处理性能。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
Claims (10)
1.一种任务调度方法,应用于任务调度系统中,其特征在于,所述任务调度系统包括任务数据库、调度集群和业务集群;其中,所述调度集群包括至少一个调度节点,所述业务集群包括至少一个业务节点,所述任务数据库中存储待处理的任务,所述至少一个调度节点从所述任务数据库中读取任务并调用所述业务节点处理读取的任务;所述方法包括:
调度节点根据预设算法从所述任务数据库中获取属于所述调度节点的预设时间段内的待处理任务,所述预设时间段内的待处理任务是执行时间超前于当前时刻的时间差处于所述预设时间段内的任务;
所述调度节点将所述预设时间段内的待处理任务存储在所述调度节点的任务资源池中;
当到达所述待处理任务的当前执行时间时,所述调度节点向对应的所述业务节点发送任务触发消息;
所述业务节点根据所述任务触发消息处理所述待处理任务。
2.根据权利要求1所述的方法,其特征在于,所述调度节点利用预设算法获取属于所述调度节点的预设时间段内的待处理任务,包括:
所述调度节点获取所述调度集群所包含的调度节点的总数,并确定自身在所述调度集群中的位置数;
所述调度节点获取所述任务数据库中任务创建时间戳相对于所述调度节点的总数的余数,确定余数与所述调度节点的位置数相同的预设时间段内的任务为所述待处理任务。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当确定所述调度集群包含的调度节点的数量更新时,所述调度节点根据任务的执行时间检测所述任务数据库中是否存在属于所述调度节点的未触发任务,所述未触发任务是超过任务的执行时间且未执行的任务;
当确定存在所述未触发任务时,所述调度节点从所述任务数据库中获取所述未触发任务,并触发所述未触发任务。
4.根据权利要求1所述的方法,其特征在于,所述任务调度系统还包括任务执行数据库,所述任务执行数据中存储被触发的任务;所述任务触发消息包含所述待处理任务的任务标识和当前执行时间;
所述业务节点根据所述任务触发消息处理所述待处理任务,包括:
所述业务节点根据所述任务触发消息所包含的任务标识和当前执行时间,更新所述任务执行数据库内的任务;
当所述任务执行数据库更新成功后,所述业务节点处理所述任务标识对应的任务。
5.根据权利要求4所述的方法,其特征在于,所述业务节点根据所述任务触发消息所包含的任务标识和当前执行时间,更新所述任务执行数据库内的任务,包括:
所述业务节点判断所述任务执行数据库中是否存在所述任务标识对应的任务;
如果所述任务执行数据库中不存在所述任务标识对应的任务,所述业务节点在所述任务执行数据库中添加所述任务标识对应的任务,且所述任务标识对应的任务的执行时间为所述当前执行时间;
如果所述任务执行数据库中存在所述任务标识对应的任务,所述业务节点判断所述任务标识对应任务的执行时间是否是所述当前执行时间;
如果所述任务标识对应任务的执行时间不是所述当前执行时间,则将所述任务的执行时间更新为所述当前执行时间,并确定所述任务执行数据库更新成功;
如果所述任务标识对应任务的执行时间是所述当前执行时间,则确定所述任务执行数据库更新失败。
6.一种任务调度系统,其特征在于,包括任务数据库、调度集群和业务集群;
其中,所述调度集群包括至少一个调度节点,所述业务集群包括至少一个业务节点,所述任务数据库中存储待处理的任务,所述至少一个调度节点从所述任务数据库中读取任务并调用所述业务节点处理读取的任务;
所述调度节点,用于根据预设算法从所述任务数据库中获取属于所述调度节点的预设时间段内的待处理任务并存储在所述调度节点的任务资源池中,所述预设时间段内的待处理任务是执行时间超前于当前时刻的时间差处于所述预设时间段内的任务;当到达所述待处理任务的当前执行时间时,向对应的所述业务节点发送任务触发消息;
所述业务节点,用于根据所述任务触发消息处理所述待处理任务。
7.根据权利要求6所述的系统,其特征在于,所述调度节点利用预设算法获取属于所述调度节点的预设时间段内的待处理任务时,具体用于:
获取所述调度集群所包含的调度节点的总数,并确定自身在所述调度集群中的位置数;
获取所述任务数据库中任务创建时间戳相对于所述调度节点的总数的余数,确定余数与所述调度节点的位置数相同的预设时间段内的任务为所述待处理任务。
8.根据权利要求6所述的系统,其特征在于,
所述调度节点,还用于当确定所述调度集群包含的调度节点的数量更新时,根据任务的执行时间检测所述任务数据库中是否存在属于所述调度节点的未触发任务,所述未触发任务是超过任务的执行时间且未执行的任务;当确定存在所述未触发任务时,从所述任务数据库中获取所述未触发任务,并触发所述未触发任务。
9.根据权利要求6所述的系统,其特征在于,所述任务调度系统还包括任务执行数据库,所述任务执行数据中存储被触发的任务;所述任务触发消息包含所述待处理任务的任务标识和当前执行时间;
所述业务节点根据所述任务触发消息处理所述待处理任务时,具体用于:
根据所述任务触发消息所包含的任务标识和当前执行时间,更新所述任务执行数据库内的任务;当所述任务执行数据库更新成功后,处理所述任务标识对应的任务。
10.根据权利要求9所述的系统,其特征在于,所述业务节点用于根据所述任务触发消息所包含的任务标识和当前执行时间,更新所述任务执行数据库内的任务时,具体用于:
判断所述任务执行数据库中是否存在所述任务标识对应的任务;
如果所述任务执行数据库中不存在所述任务标识对应的任务,在所述任务执行数据库中添加所述任务标识对应的任务,且所述任务标识对应的任务的执行时间为所述当前执行时间;
如果所述任务执行数据库中存在所述任务标识对应的任务,判断所述任务标识对应任务的执行时间是否是所述当前执行时间;
如果所述任务标识对应任务的执行时间不是所述当前执行时间,则将所述任务的执行时间更新为所述当前执行时间,并确定所述任务执行数据库更新成功;
如果所述任务标识对应任务的执行时间是所述当前执行时间,则确定所述任务执行数据库更新失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511007956.5A CN105468450B (zh) | 2015-12-29 | 2015-12-29 | 任务调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511007956.5A CN105468450B (zh) | 2015-12-29 | 2015-12-29 | 任务调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468450A true CN105468450A (zh) | 2016-04-06 |
CN105468450B CN105468450B (zh) | 2019-02-05 |
Family
ID=55606185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511007956.5A Active CN105468450B (zh) | 2015-12-29 | 2015-12-29 | 任务调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468450B (zh) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959711A (zh) * | 2016-04-21 | 2016-09-21 | 乐视控股(北京)有限公司 | 一种直播流媒体的上传方法及装置 |
CN106815072A (zh) * | 2017-01-16 | 2017-06-09 | 北京市天元网络技术股份有限公司 | 一种任务调度方法 |
CN106874083A (zh) * | 2017-01-03 | 2017-06-20 | 杭州医学院 | 一种数采系统人机接口任务调度方法 |
CN107092528A (zh) * | 2016-12-30 | 2017-08-25 | 北京小度信息科技有限公司 | 一种分布式任务调度方法、装置及系统 |
CN107092523A (zh) * | 2017-04-14 | 2017-08-25 | 浙江数链科技有限公司 | 定时任务的调度方法和系统 |
CN107222555A (zh) * | 2017-06-27 | 2017-09-29 | 聚好看科技股份有限公司 | 消息处理方法及装置 |
CN107423894A (zh) * | 2017-07-19 | 2017-12-01 | 东软集团股份有限公司 | 任务审批方法、装置和计算机设备 |
CN107766131A (zh) * | 2016-08-22 | 2018-03-06 | 平安科技(深圳)有限公司 | 任务调度方法和装置 |
CN107783843A (zh) * | 2016-08-31 | 2018-03-09 | 中国移动通信有限公司研究院 | 一种云数据的处理方法及装置 |
CN108363786A (zh) * | 2018-02-12 | 2018-08-03 | 苏州朗动网络科技有限公司 | 加载数据的方法、装置、计算机设备和存储介质 |
CN108509271A (zh) * | 2018-03-21 | 2018-09-07 | 四川斐讯信息技术有限公司 | 一种数据处理方法及系统 |
CN108540302A (zh) * | 2017-03-03 | 2018-09-14 | 腾讯科技(深圳)有限公司 | 一种大数据处理的方法及设备 |
CN108829482A (zh) * | 2018-06-20 | 2018-11-16 | 广州视源电子科技股份有限公司 | 数据传输协作控制系统、方法、存储介质及交互设备 |
CN108985629A (zh) * | 2018-07-17 | 2018-12-11 | 阿里巴巴集团控股有限公司 | 业务链中业务节点的执行方法、装置及服务器 |
CN109471705A (zh) * | 2017-09-08 | 2019-03-15 | 杭州海康威视数字技术股份有限公司 | 任务调度的方法、设备及系统、计算机设备 |
CN109491773A (zh) * | 2018-09-28 | 2019-03-19 | 阿里巴巴集团控股有限公司 | 一种基于时间分片的补偿任务调度方法、装置及系统 |
CN109614239A (zh) * | 2018-12-12 | 2019-04-12 | 浪潮(北京)电子信息产业有限公司 | 系统集群负载均衡方法、装置及相关设备 |
CN109885622A (zh) * | 2019-01-18 | 2019-06-14 | 广州虎牙信息科技有限公司 | 一种数据处理设备、系统以及多节点数据处理方法 |
CN110175201A (zh) * | 2019-04-10 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 业务数据处理方法、系统、装置及电子设备 |
CN110611707A (zh) * | 2019-09-05 | 2019-12-24 | 深圳前海微众银行股份有限公司 | 一种任务调度的方法及装置 |
CN110727508A (zh) * | 2019-10-24 | 2020-01-24 | 无锡京和信息技术有限公司 | 一种任务调度系统和调度方法 |
CN110928692A (zh) * | 2020-01-23 | 2020-03-27 | 飞诺门阵(北京)科技有限公司 | 一种任务处理方法、装置及电子设备 |
CN111143053A (zh) * | 2019-11-15 | 2020-05-12 | 杭州涂鸦信息技术有限公司 | 一种定时任务的调度方法、服务器以及存储装置 |
CN111176848A (zh) * | 2019-12-31 | 2020-05-19 | 北大方正集团有限公司 | 集群任务的处理方法、装置、设备和存储介质 |
CN111240822A (zh) * | 2020-01-15 | 2020-06-05 | 华为技术有限公司 | 任务调度方法、装置、系统及存储介质 |
CN111556138A (zh) * | 2020-04-26 | 2020-08-18 | 北京明略软件系统有限公司 | 一种数据分配方法、装置、电子设备及存储介质 |
CN111782679A (zh) * | 2020-06-22 | 2020-10-16 | 深圳市酷开网络科技有限公司 | 数据处理过程的监管方法、装置、计算机设备及存储介质 |
CN112654092A (zh) * | 2019-10-09 | 2021-04-13 | 中盈优创资讯科技有限公司 | 资源调度方法、装置及系统 |
CN112925618A (zh) * | 2021-02-22 | 2021-06-08 | 北京达佳互联信息技术有限公司 | 一种分布式任务的处理方法和装置 |
CN112965796A (zh) * | 2021-03-01 | 2021-06-15 | 亿企赢网络科技有限公司 | 一种任务调度系统、方法和装置 |
CN113009906A (zh) * | 2021-03-04 | 2021-06-22 | 青岛弯弓信息技术有限公司 | 一种基于工业互联网的大数据预测分析方法及系统 |
CN115269160A (zh) * | 2022-09-29 | 2022-11-01 | 广州市保伦电子有限公司 | 一种定时任务执行方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639792A (zh) * | 2008-07-29 | 2010-02-03 | 阿里巴巴集团控股有限公司 | 一种并发数据处理方法、装置及一种电子记账系统 |
CN103605567A (zh) * | 2013-10-29 | 2014-02-26 | 河海大学 | 面向实时性需求变化的云计算任务调度方法 |
CN104834564A (zh) * | 2015-05-20 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | 任务调度的方法和装置 |
US20150301854A1 (en) * | 2014-04-21 | 2015-10-22 | Samsung Electronics Co., Ltd. | Apparatus and method for hardware-based task scheduling |
-
2015
- 2015-12-29 CN CN201511007956.5A patent/CN105468450B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639792A (zh) * | 2008-07-29 | 2010-02-03 | 阿里巴巴集团控股有限公司 | 一种并发数据处理方法、装置及一种电子记账系统 |
CN103605567A (zh) * | 2013-10-29 | 2014-02-26 | 河海大学 | 面向实时性需求变化的云计算任务调度方法 |
US20150301854A1 (en) * | 2014-04-21 | 2015-10-22 | Samsung Electronics Co., Ltd. | Apparatus and method for hardware-based task scheduling |
CN104834564A (zh) * | 2015-05-20 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | 任务调度的方法和装置 |
Cited By (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959711A (zh) * | 2016-04-21 | 2016-09-21 | 乐视控股(北京)有限公司 | 一种直播流媒体的上传方法及装置 |
CN107766131B (zh) * | 2016-08-22 | 2020-09-22 | 平安科技(深圳)有限公司 | 任务调度方法和装置 |
CN107766131A (zh) * | 2016-08-22 | 2018-03-06 | 平安科技(深圳)有限公司 | 任务调度方法和装置 |
CN107783843A (zh) * | 2016-08-31 | 2018-03-09 | 中国移动通信有限公司研究院 | 一种云数据的处理方法及装置 |
CN107092528A (zh) * | 2016-12-30 | 2017-08-25 | 北京小度信息科技有限公司 | 一种分布式任务调度方法、装置及系统 |
CN106874083A (zh) * | 2017-01-03 | 2017-06-20 | 杭州医学院 | 一种数采系统人机接口任务调度方法 |
CN106874083B (zh) * | 2017-01-03 | 2019-06-28 | 杭州医学院 | 一种数采系统人机接口任务调度方法 |
CN106815072A (zh) * | 2017-01-16 | 2017-06-09 | 北京市天元网络技术股份有限公司 | 一种任务调度方法 |
CN108540302B (zh) * | 2017-03-03 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 一种大数据处理的方法及设备 |
CN108540302A (zh) * | 2017-03-03 | 2018-09-14 | 腾讯科技(深圳)有限公司 | 一种大数据处理的方法及设备 |
CN107092523A (zh) * | 2017-04-14 | 2017-08-25 | 浙江数链科技有限公司 | 定时任务的调度方法和系统 |
CN107222555A (zh) * | 2017-06-27 | 2017-09-29 | 聚好看科技股份有限公司 | 消息处理方法及装置 |
CN107222555B (zh) * | 2017-06-27 | 2020-08-25 | 聚好看科技股份有限公司 | 消息处理方法及装置 |
CN107423894A (zh) * | 2017-07-19 | 2017-12-01 | 东软集团股份有限公司 | 任务审批方法、装置和计算机设备 |
CN109471705A (zh) * | 2017-09-08 | 2019-03-15 | 杭州海康威视数字技术股份有限公司 | 任务调度的方法、设备及系统、计算机设备 |
CN108363786A (zh) * | 2018-02-12 | 2018-08-03 | 苏州朗动网络科技有限公司 | 加载数据的方法、装置、计算机设备和存储介质 |
CN108509271A (zh) * | 2018-03-21 | 2018-09-07 | 四川斐讯信息技术有限公司 | 一种数据处理方法及系统 |
CN108829482A (zh) * | 2018-06-20 | 2018-11-16 | 广州视源电子科技股份有限公司 | 数据传输协作控制系统、方法、存储介质及交互设备 |
CN108985629B (zh) * | 2018-07-17 | 2022-04-08 | 创新先进技术有限公司 | 业务链中业务节点的执行方法、装置及服务器 |
CN108985629A (zh) * | 2018-07-17 | 2018-12-11 | 阿里巴巴集团控股有限公司 | 业务链中业务节点的执行方法、装置及服务器 |
CN109491773B (zh) * | 2018-09-28 | 2021-07-27 | 创新先进技术有限公司 | 一种基于时间分片的补偿任务调度方法、装置及系统 |
CN109491773A (zh) * | 2018-09-28 | 2019-03-19 | 阿里巴巴集团控股有限公司 | 一种基于时间分片的补偿任务调度方法、装置及系统 |
CN109614239A (zh) * | 2018-12-12 | 2019-04-12 | 浪潮(北京)电子信息产业有限公司 | 系统集群负载均衡方法、装置及相关设备 |
CN109885622A (zh) * | 2019-01-18 | 2019-06-14 | 广州虎牙信息科技有限公司 | 一种数据处理设备、系统以及多节点数据处理方法 |
CN109885622B (zh) * | 2019-01-18 | 2021-07-16 | 广州虎牙信息科技有限公司 | 一种数据处理设备、系统以及多节点数据处理方法 |
CN110175201A (zh) * | 2019-04-10 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 业务数据处理方法、系统、装置及电子设备 |
CN110611707A (zh) * | 2019-09-05 | 2019-12-24 | 深圳前海微众银行股份有限公司 | 一种任务调度的方法及装置 |
CN112654092B (zh) * | 2019-10-09 | 2023-05-30 | 中盈优创资讯科技有限公司 | 资源调度方法、装置及系统 |
CN112654092A (zh) * | 2019-10-09 | 2021-04-13 | 中盈优创资讯科技有限公司 | 资源调度方法、装置及系统 |
CN110727508A (zh) * | 2019-10-24 | 2020-01-24 | 无锡京和信息技术有限公司 | 一种任务调度系统和调度方法 |
CN111143053A (zh) * | 2019-11-15 | 2020-05-12 | 杭州涂鸦信息技术有限公司 | 一种定时任务的调度方法、服务器以及存储装置 |
CN111176848A (zh) * | 2019-12-31 | 2020-05-19 | 北大方正集团有限公司 | 集群任务的处理方法、装置、设备和存储介质 |
CN111176848B (zh) * | 2019-12-31 | 2023-05-26 | 北大方正集团有限公司 | 集群任务的处理方法、装置、设备和存储介质 |
CN111240822A (zh) * | 2020-01-15 | 2020-06-05 | 华为技术有限公司 | 任务调度方法、装置、系统及存储介质 |
CN111240822B (zh) * | 2020-01-15 | 2023-11-17 | 华为技术有限公司 | 任务调度方法、装置、系统及存储介质 |
CN110928692A (zh) * | 2020-01-23 | 2020-03-27 | 飞诺门阵(北京)科技有限公司 | 一种任务处理方法、装置及电子设备 |
CN111556138A (zh) * | 2020-04-26 | 2020-08-18 | 北京明略软件系统有限公司 | 一种数据分配方法、装置、电子设备及存储介质 |
CN111782679A (zh) * | 2020-06-22 | 2020-10-16 | 深圳市酷开网络科技有限公司 | 数据处理过程的监管方法、装置、计算机设备及存储介质 |
CN111782679B (zh) * | 2020-06-22 | 2024-03-26 | 深圳市酷开网络科技股份有限公司 | 数据处理过程的监管方法、装置、计算机设备及存储介质 |
CN112925618A (zh) * | 2021-02-22 | 2021-06-08 | 北京达佳互联信息技术有限公司 | 一种分布式任务的处理方法和装置 |
CN112965796A (zh) * | 2021-03-01 | 2021-06-15 | 亿企赢网络科技有限公司 | 一种任务调度系统、方法和装置 |
CN112965796B (zh) * | 2021-03-01 | 2024-04-09 | 亿企赢网络科技有限公司 | 一种任务调度系统、方法和装置 |
CN113009906A (zh) * | 2021-03-04 | 2021-06-22 | 青岛弯弓信息技术有限公司 | 一种基于工业互联网的大数据预测分析方法及系统 |
CN115269160A (zh) * | 2022-09-29 | 2022-11-01 | 广州市保伦电子有限公司 | 一种定时任务执行方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105468450B (zh) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105468450A (zh) | 任务调度方法及系统 | |
CN111338773B (zh) | 一种分布式定时任务调度方法、调度系统及服务器集群 | |
US10838777B2 (en) | Distributed resource allocation method, allocation node, and access node | |
CN111338774B (zh) | 分布式定时任务调度系统及计算装置 | |
CN109471705B (zh) | 任务调度的方法、设备及系统、计算机设备 | |
CN106936618B (zh) | 一种数据采集方法和系统 | |
CN104503845B (zh) | 一种任务分发方法和系统 | |
CN103414712B (zh) | 一种分布式虚拟桌面管理系统和方法 | |
CN109862101B (zh) | 跨平台应用启动方法、装置、计算机设备和存储介质 | |
CN103581225A (zh) | 分布式系统中的节点处理任务的方法 | |
CN109445927B (zh) | 一种存储集群的任务管理方法及装置 | |
WO2021104178A1 (zh) | 一种动态消息推送方法、系统和汽车诊断服务器 | |
CN109144748B (zh) | 一种服务器、分布式服务器集群及其状态驱动方法 | |
CN111818117A (zh) | 数据更新的方法、装置、存储介质及电子设备 | |
CN109062681A (zh) | 一种周期性循环任务的执行方法、系统、装置及存储介质 | |
CN105373453A (zh) | 数据备份方法及系统 | |
US8793527B1 (en) | Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network | |
CN111541762A (zh) | 数据处理的方法、管理服务器、设备及存储介质 | |
CN109388501B (zh) | 基于人脸识别请求的通信匹配方法、装置、设备及介质 | |
CN105830029B (zh) | 用于在计算环境中支持自适应忙等待的系统和方法 | |
CN112073532B (zh) | 一种资源分配的方法及装置 | |
CN113672335A (zh) | 容器调度方法、装置、电子装置和存储介质 | |
CN111835809B (zh) | 工单消息分配方法、装置、服务器及存储介质 | |
CN116455830A (zh) | 实现存储网关高可用分布式qos的方法 | |
CN111756800A (zh) | 一种处理突发流量的方法和系统 |
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: 20220906 Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041 Patentee after: Chengdu Huawei Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |