CN110231995A - 一种基于Actor模型的任务调度方法、装置及存储介质 - Google Patents

一种基于Actor模型的任务调度方法、装置及存储介质 Download PDF

Info

Publication number
CN110231995A
CN110231995A CN201910421282.5A CN201910421282A CN110231995A CN 110231995 A CN110231995 A CN 110231995A CN 201910421282 A CN201910421282 A CN 201910421282A CN 110231995 A CN110231995 A CN 110231995A
Authority
CN
China
Prior art keywords
task
node
scheduling
scheduling node
mentioned
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
CN201910421282.5A
Other languages
English (en)
Other versions
CN110231995B (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201910421282.5A priority Critical patent/CN110231995B/zh
Priority to PCT/CN2019/102741 priority patent/WO2020232875A1/zh
Publication of CN110231995A publication Critical patent/CN110231995A/zh
Application granted granted Critical
Publication of CN110231995B publication Critical patent/CN110231995B/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)

Abstract

本申请公开了一种基于Actor模型的任务调度方法、任务调度装置及计算机可读存储介质,应用于数据处理领域,其中方法包括:检测任务集群中是否存在新增的目标任务;在检测到任务集群中存在新增的目标任务的情况下,为目标任务创建Actor模型,Actor模型包括多个工作节点,多个工作节点包括一个调度节点和至少一个任务节点;利用调度节点通过消息传递的方式调用至少一个任务节点执行目标任务;在检测到目标任务完成之后,在任务集群中删除目标任务。本申请提供了一种基于Actor模型的任务调度方法,由于调度节点和任务节点都是Actor节点,使得本申请不需要锁便能完成任务调度,大大的提高了任务调度的效率。

Description

一种基于Actor模型的任务调度方法、装置及存储介质
技术领域
本申请涉及任务调度领域,尤其涉及一种任务调度方法、装置及计算机可读存储介质。
背景技术
任务调度常常因为多线程或多进程并发访问某个临界资源而陷入死锁,这时可通过对该临界资源进行加锁,来建立线程或进程之间的互斥同步机制,以保障临界资源的完整性和一致性。单机的进程同步和线程同步有很多可用的互斥方案,比如互斥锁、信号量和条件变量等。但这些单机下的互斥方案在多机上是无法使用的,因为分布式系统的组件运行在不同的机器上,使得其不在统一的运行环境中。
分布式任务调度中,常常通过分布式锁解决对临界资源的互斥访问,比如Redis分布式锁和Zookeeper分布式锁的等。
但是分布式锁的实现比较复杂,且维护比较麻烦,需要较多维护成本,因此分布式锁不是一个解决分布式任务调度的死锁问题的理想方案,还是缺少了一种可以更高效的分布式任务调度方法。
发明内容
本申请实施例提供一种任务调度方法,可以不使用锁便实现分布式任务调度和处理。
第一方面,本申请实施例提供了一种任务调度方法,该方法包括:
检测任务集群中是否存在新增的目标任务;
在检测到所述任务集群中存在新增的目标任务的情况下,为所述目标任务创建Actor模型,所述Actor模型包括多个工作节点,所述多个工作节点之间通过消息传递的方式通信,所述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,所述多个工作节点包括一个调度节点和至少一个任务节点,所述调度节点用于调用所述任务节点执行任务;
利用所述调度节点通过所述消息传递的方式调用所述至少一个任务节点执行所述目标任务;
在检测到所述目标任务完成之后,在所述任务集群中删除所述目标任务。
第二方面,本申请实施例提供了一种任务调度装置,该任务调度装置包括用于执行上述第一方面的任务调度方法的单元,该任务调度装置包括:
检测单元,用于检测任务集群中是否存在新增的目标任务;
创建单元,用于在检测到任务集群中存在新增的目标任务的情况下,为所述目标任务创建Actor模型,所述Actor模型包括多个工作节点,所述多个工作节点之间通过消息传递的方式通信,所述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,所述多个工作节点包括一个调度节点和至少一个任务节点,所述调度节点用于调用所述任务节点执行任务;
执行单元,用于利用所述调度节点通过所述消息传递的方式调用所述至少一个任务节点执行所述目标任务;
删除单元,用于在检测到所述目标任务完成之后,在所述任务集群中删除所述目标任务。
第三方面,本申请实施例提供了另一种任务调度装置,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储支持任务调度装置执行上述任务调度方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用以执行上述第一方面至第一方面的任意一种实现方式的任务调度方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行,用以执行上述第一方面至第一方面的任意一种实现方式的任务调度方法。
本申请每当检测到目标任务,就为该目标任务建立包括调度节点和任务节点的Actor模型,并利用调度节点来调度任务节点执行目标任务,在检测到目标任务完成之后,删除该目标任务,可见,本申请所提供的任务调度方法中,由于调度节点和任务节点都是Actor,于是调度节点和任务节点是通过信息传递的方式进行通信的,而信息传递的好处就是不会产生数据竞争的问题,在处理任务的时候无需同步阻塞等待,于是本申请也便不需要借助于锁便可以实现复杂的分布式任务调度,并且大大提高分布式任务处理的并发性能,可见,本申请提供了一种高效的任务调度方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种任务调度方法的示意流程图;
图2是本申请另一实施例提供的一种任务调度方法的示意流程图;
图3是本申请实施例提供的一种任务调度装置的示意性框图;
图4是本申请实施例提供的一种任务调度装置的结构性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请主要应用于任务调度装置,该任务调度装置可以是传统任务调度装置、大型存储系统、台式电脑、笔记本电脑、平板电脑、掌上电脑、智能手机、便携式数字播放器、智能手表以及智能手环等等,本申请对此不做限制。
本申请实施例中描述的终端包括但不限于带通讯功能的设备、智能手机、平板电脑、笔记本电脑、台式电脑、便携式数字播放器、智能手环以及智能手表等。当终端向任务调度装置发送数据的时候,按照预设格式进行对数据的特性进行记录并传送,其中,数据的特性包括时间、地点、类型等。
参见图1,是本申请实施例提供一种任务调度方法的示意流程图,如图1所示任务调度方法可包括:
101:检测任务集群中是否存在新增的目标任务。
在本申请实施例中,检测任务集群中是否存在新增的任务,若存在新增的任务,则将该新增的任务作为目标任务。其中,任务集群指的是待处理的任务的集合,且该任务集群中的不同任务可能由不同的终端所提出,而任务集群中的任务可能是由多个终端共同处理的分布式任务,也可能是仅由一个终端处理的单机任务,检测的过程指的是,本端的任务调度装置定时检测任务集群中是否存在新增的任务,或者任务集群中新增一个任务,本端装置便能接收到用于指示任务集群中新增任务的消息。
在另一种可实施的方式中,上述目标任务不是任务集群中新增的任意任务,而是任务集群中新增的分布式任务,具体的,上述检测任务集群中是否存在新增的目标任务指的是,检测任务集群中的新增的任务,若确定该新增的任务为分布式任务,则确定检测到任务集群中存在新增的目标任务。
在本申请实施例中,上述检测任务集群中新增的任务为分布式任务的过程指的是,获取上述任务集群中新增的任务的类型,若该新增的任务的类型为分布式任务,则表示该新增的任务的类型为分布式任务,或者,获取上述新增的任务的难度等级,若确定该新增的任务的难度等级超过预设级别,则说明该新增的任务需要占用较多的计算资源,并确定该新增的任务为分布式任务,也即是将该难度级别超过预设级别的任务作为目标任务,并接下来采用分布式任务的处理方法对其进行处理。
可见,本申请实施例只有在确定任务集群新增了分布式任务的时候,才确定任务集群中有新增的目标任务,上述检测到的任务集群中新增的分布式任务即目标任务。
102:在检测到上述任务集群中存在新增的目标任务的情况下,为该目标任务创建Actor模型,Actor模型包括多个工作节点,多个工作节点包括一个调度节点和至少一个任务节点。
在本申请实施例中,Actor模型为一个用于任务处理的模型,具体来说Actor模型是一个概念模型,用于处理并发计算,它定义了一系列系统组件应该如何动作和交互的通用规则。Actor模型中包含了多个Actor,Actor在本申请实施例中被称为工作节点,每个工作节点是Actor模型中进行任务处理的最基本的计算单元,它能接收一个消息并且基于其执行计算。于是上述根据该目标任务的执行内容创建包含多个工作节点的Actor模型指的是,对目标任务进行分解,然后基于分解之后的目标任务的任务内容,创建多个工作节点来执行对应的任务内容,而该用于执行目标任务的工作节点即任务节点,而在执行任务的时候,多个任务节点可能是并行执行的,如果调度任务节点时调度不当,可能会造成多个任务节点之间的资源竞争,于是为了确定调度的顺序,并避免资源竞争,上述Actor模型中还包括用于执行任务调度的工作节点,该用于执行任务调度的工作节点在本申请实施例中被称为调度节点,调度节点用于安排各个任务节点的执行顺序,并调度各个任务节点有序执行任务。总的来说,为上述目标任务创建的Actor模型中包含多个工作节点,该多个工作节点中包含一个调度节点和至少一个任务节点。
需要说明的是,由于本申请实施例采用的调度节点和任务节点都是Actor,而Actor之间是通过消息传递的方式进行通信,因此不管是在任务调度,还是任务执行的时候,都不会产生资源竞争的问题。其中,消息传递的方式指的是在消息传递系统中,进程间的数据交换是以格式化的消息(Message)为单位的,Actors的一大重要特征在于Actors之间相互隔离,它们并不互相共享内存,一个Actor能维持一个私有的状态,并且这个状态不可能被另一个Actor所改变,而消息传递也保证了Actor之间的异步处理,因此Actor之间也不会存在数据竞争。若通信的进程之间不存在可直接访问的共享空间,则必须利用操作系统提供的消息传递方法实现进程通信,进程通过系统提供的发送消息和接收消息两个原语进行数据交换。简单来说,Actor之间通过消息传递的方式来进行资源共享,当Actor需要另一个Actor的资源的时候,只需要将消息发送给另一个Actor,但不关心另一个Actor什么时候处理,因此Actor之间的消息是异步传输的,类似邮件通信。具体的,在Actor模型里每个Actor都有地址,所以它们才能够相互发送消息,尽管许多Actor同时运行,但是一个Actor只能顺序地处理消息。也就是说其它三个Actor发送了给一个Actor分别发送了一条消息,这个Actor只能一次处理一条,如果需要并行处理三条消息,则需要三个Actor分别对这三条消息进行处理,并且如果Actor在处理消息的过程中又接收到一条新的消息,则该新的消息会被存储到Actor的邮箱Mailbox中,每个Actor对应有一个Mailbox。
可见,Actor通过消息传递的方式将不同Actor的可访问的资源进行了分隔,并保障了Actor之间的消息的异步处理,从而避免了使用锁来处理数据条件竞争(data race)的问题。消息传递机制最大的优点就是不会产生数据竞争状态(data race)。
还需要说明的是,上述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,于是本申请实施例应用于分布式任务的调度和处理,可见,由于位于不同的终端上的工作节点在工作的时候,只会占用其所在终端的计算资源,于是在一个终端集群中的多个终端共同处理一个分布式任务,相比单机处理,分布式处理可以大大提升了计算能力和计算速度。需要注意的是,由于本申请实施例采用了Actor模型中的Actor来作为工作节点,才可以不需要分布式锁便能实现分布式任务调度和处理,这是因为Actor只关注接收到的消息的内容,而不关注消息的发送方是本地的Actor还是终端上的Actor,于是只要保证多个Actor之间的消息能够顺利达到即可,也也允许了本申请实施例可以不及住锁便能在包含多个终端的终端集群中构建Actor模型,并实现分布式任务的调度和处理。
在另一种可实施的方式中,上述多个工作节还包括至少一个备用调度节点,备用调度节点用于替换宕机的调度节点。若检测到上述调度节点宕机,则从上述至少一个备用调度节点中选取一个备用调度节点作为新的调度节点。
在本申请实施例中,为目标任务创建的Actor模型中除了上述任务节点和调度节点以外,还包括至少一个备用调度节点,该备用调度节点用于在调度节点宕机的时候,替换该宕机的调度节点作为新的调度节点,然后新的调度节点可以从头开始执行调度,或者接着宕机的调度节点在宕机之前的调度进度,继续执行调度。其中,备用调度节点是按照调度节点的初始化信息创建的,因此备用调度节点可以替代调度节点。
可见,本申请实施例通过创建至少一个备用调度节点,可以在调度节点宕机时,启用该备用调度节点,以解决调度节点可能宕机的问题。
在一种可实施的方式中,若上述Actor模型中只包括一个备用调度节点,则将在调度节点宕机的时候,直接将上述Actor模型中仅包括的一个备用调度节点作为新的调度节点,若上述Actor模型中包括多个备用调度节点,则在调度节点宕机的时候,从该多个备用调度节点中选取任意一个备用调度节点作为新的调度节点,或者,分别获取每个备用调度节点的创建时间,并确定Actor模型包括的备用调度节点中创建时间最早的调度节点,然后将创建时间最早的备用调度节点作为新的调度节点。
可见,如果是根据备用调度时间的早晚来确定用于替换宕机的调度节点的备用调度节点,好处在于,便于本端装置通过读取当前使用的调度节点的创建时间,可以快速判定已宕机的调用节点的个数,从而获知调用节点的宕机情况。
在一种可实施的方式中,上述为目标任务创建Actor模型指的是,获取目标任务的标签,标签用于指示目标任务的重要程度,并获取目标任务的标签对应的目标数量,目标数量用于指示Actor模型中的备用调度节点的个数,然后创建包括目标数量的备用调度节点的Actor模型。
在本申请实施例中,在创建Actor模型的时候,Actor模型中的备用调度节点的个数多少与目标任务的重要程度有关,目标任务越重要,就为目标任务创建更多的备用调度节点。具体的,在为目标任务创建Actor模型的时候,获取目标任务的标签,并在数据库中获取该目标任务的标签对应的目标数量,然后创创建包含目标数量的备用调度节点。其中,数据库中保存有任务的标签与备用调度节点的个数的对应关系。
在另一种可实施的方式中,上述多个工作节点还包括至少一个监控节点,监控节点用于初始化宕机的调度节点,具体的,若检测到调度节点宕机,则利用监控节点对该宕机的调度节点进行初始化,使得该宕机的调度节点恢复正常。
本申请实施例描述了另一种解决调度节点宕机问题的方法,即如果调度节点宕机,则使用该监控设备对宕机的调度节点进行初始化。具体的,在检测到调度节点宕机之后,使用监控节点根据调度节点的初始化信息对宕机的调度节点进行初始化,使得宕机的调度节点恢复正常。或者,监控节点用于将宕机的调度节点恢复到宕机前一个时刻的正常状态,具体的,在检测到上述调度节点宕机之后,获取记录在数据库中的该宕机的调度节点在宕机前一个时刻的状态信息,并使用监控节点根据上述调度节点在宕机前一个时刻的状态信息对调度节点进行恢复,使得调度节点恢复到上述状态信息对应的正常状态。
在另一种可实施的方式中,在为目标任务创建Actor模型的时候,根据目标任务的重要程度决定是否在上述Actor模型中创建监控节点。具体的,在任务集群中检测到目标任务之后,获取该目标任务的标签,该标签用于指示目标任务的重要等级,若目标任务的重要等级超过了预设等级,则在创建Actor模型的时候,创建上述监控节点,若目标任务的重要等级超过了预设等级,则不创建上述监控节点。
在另一种可实施的方式中,上述监控节点还用于对宕机的任务节点进行初始化,以使得该宕机的任务节点恢复正常。
在另一种可实施的方式中,上述为目标任务创建的Actor模型针对于该模型中包含的每个任务节点分别包括至少一个备用任务节点,该备用任务节点用于替换宕机的任务节点。
103:利用上述调度节点通过消息传递的方式调用上述至少一个任务节点执行上述目标任务。
在本申请实施例中,利用调度节点通过消息传递的方式,调用上述至少一个任务节点执行上述目标任务。具体的,调度节点将用于触发任务节点执行任务的消息发送给任务节点,使得任务节点执行任务,在任务节点执行完任务之后,会向调度节点反馈一个用于指示任务完成的信息,使得调度节点获取完成任务的任务节点,并继续按照执行顺序调度执行其他任务节点,从而最终完成目标任务。
104:在检测到上述目标任务完成之后,在上述任务集群中删除上述目标任务。
在本申请实施例中,在检测到上述目标任务完成之后,便在上述任务集群中删除上述目标任务,并检测和执行任务集群中的下一个目标任务。
在另一种可实施的方式中,上述在任务集群中删除目标任务之后,检测已创建的工作节点的个数,并获取所述已创建的工作节点的创建时间;若所述已创建的工作节点的个数大于预设个数,则按照所述创建时间从早到晚的排序,依次删除所述已创建的工作节点,直到剩下的已创建的工作节点的个数小于或等于所述预设个数。
在本申请实施例中,系统中的工作节点可能太多而导致本端装置存储空间不足或者系统运行缓慢,于是在完成目标任务之后,检测已创建的工作节点的个数,如果已创建的工作节点的个数超过预设个数,就对工作节点进行删减,直到剩下的工作节点的个数小于等于预设个数。其中,按照工作节点的创建时间由早到晚顺序进行删除,这是因为早创建的工作节点,相较于晚创建的工作节点,被再次使用的几率更小。
上述删除已创建的工作节点的详细过程为,检测已创建的工作节点的个数,并获取该已创建的工作节点的创建时间,若该已创建的工作节点的个数大于预设个数,则确定该已创建的工作节点中创建时间最早的时间节点,并删除所述已创建的工作节点中创建时间最早的工作节点,然后若在删除该已创建的工作节点中创建时间最晚的工作节点之后,已创建的工作节点的个数仍大于预设个数,则触发执行上述确定已创建的工作节点中创建时间最早的工作节点,至删除已创建的工作节点中创建时间最早的工作节点的步骤,直到已创建的工作节点的个数在删除了创建时间最晚的工作节点之后小于或等于预设个数。
在本申请实施例中,每当检测到目标任务,就为该目标任务建立包括调度节点和任务节点的Actor模型,并利用调度节点来调度任务节点执行目标任务,在检测到目标任务完成之后,删除该目标任务,可见,本申请所提供的任务调度方法中,由于调度节点和任务节点都是Actor,于是调度节点和任务节点是通过信息传递的方式进行通信的,而信息传递的好处就是不会产生数据竞争的问题,在处理任务的时候无需同步阻塞等待,于是本申请也便不需要借助于锁便可以实现复杂的分布式任务调度,并且大大提高分布式任务处理的并发性能。可见本申请实施例提供了一种高效的任务调度方法。
参见图2,是本申请实施例提供另一种任务调度方法的示意流程图,如图2所示任务调度方法可包括:
201:检测任务集群中的新增的任务。
在本申请实施例中,检测任务集群中是否存在新增的任务,具体的检测过程指的是,本端的任务调度装置定时检测任务集群中是否存在新增的任务,或者任务集群中新增一个任务,本端装置便能接收到用于指示任务集群中新增任务的消息。其中,任务集群指的是待处理的任务的集合,且该任务集群中的不同任务可能由不同的终端所提出,而任务集群中的任务可能是由多个终端共同处理的分布式任务,也可能是仅由一个终端处理的单机任务。
202:若确定上述新增的任务为分布式任务,则确定检测到上述任务集群中存在新增的目标任务。
在本申请实施例中,在检测到任务集群中的新增的任务之后,进一步确定该新增的任务是否为目标任务。具体的,确定该新增的任务是否为分布式任务,若是则确定检测到任务集群中存在新增的目标任务。
在本申请实施例中,上述检测任务集群中新增的任务为分布式任务的过程指的是,获取上述任务集群中新增的任务的类型,若该新增的任务的类型为分布式任务,则表示该新增的任务的类型为分布式任务,或者,获取上述新增的任务的难度等级,若确定该新增的任务的难度等级超过预设级别,则说明该新增的任务需要占用较多的计算资源,并确定该新增的任务为分布式任务,也即是将该难度级别超过预设级别的任务作为目标任务,并接下来采用分布式任务的处理方法对其进行处理。
可见,本申请实施例只有在确定任务集群新增了分布式任务的时候,才确定任务集群中有新增的目标任务,上述检测到的任务集群中新增的分布式任务即目标任务。
203:在检测到上述任务集群中存在新增的目标任务的情况下,为该目标任务创建actor模型,actor模型包括多个工作节点,多个工作节点包括一个调度节点、至少一个任务节点和至少一个备用调度节点。
在本申请实施例中,Actor模型为一个用于任务处理的模型,具体来说Actor模型是一个概念模型,用于处理并发计算,它定义了一系列系统组件应该如何动作和交互的通用规则。Actor模型中包含了多个Actor,Actor在本申请实施例中被称为工作节点,每个工作节点是Actor模型中进行任务处理的最基本的计算单元,它能接收一个消息并且基于其执行计算。于是上述根据该目标任务的执行内容创建包含多个工作节点的Actor模型指的是,对目标任务进行分解,然后基于分解之后的目标任务的任务内容,创建多个工作节点来执行对应的任务内容,而该用于执行目标任务的工作节点即任务节点,而在执行任务的时候,多个任务节点可能是并行执行的,如果调度任务节点时调度不当,可能会造成多个任务节点之间的资源竞争,于是为了确定调度的顺序,并避免资源竞争,上述Actor模型中还包括用于执行任务调度的工作节点,该用于执行任务调度的工作节点在本申请实施例中被称为调度节点,调度节点用于安排各个任务节点的执行顺序,并调度各个任务节点有序执行任务。此外,由于调度节点只有一个,于是为了应对调度节点的情况,Actor中还包括至少一个备用调度节点,备用调度节点用于替换宕机的调度节点。总的来说,为上述目标任务创建的Actor模型中包含多个工作节点,该多个工作节点中包含一个调度节点、至少一个任务节点和至少一个备用调度节点。
需要说明的是,由于本申请实施例采用的调度节点和任务节点都是Actor,而Actor之间是通过消息传递的方式进行通信,因此不管是在任务调度,还是任务执行的时候,都不会产生资源竞争的问题。其中,消息传递的方式指的是在消息传递系统中,进程间的数据交换是以格式化的消息(Message)为单位的,Actors的一大重要特征在于Actors之间相互隔离,它们并不互相共享内存,一个Actor能维持一个私有的状态,并且这个状态不可能被另一个Actor所改变,而消息传递也保证了Actor之间的异步处理,因此Actor之间也不会存在数据竞争。若通信的进程之间不存在可直接访问的共享空间,则必须利用操作系统提供的消息传递方法实现进程通信,进程通过系统提供的发送消息和接收消息两个原语进行数据交换。简单来说,Actor之间通过消息传递的方式来进行资源共享,当Actor需要另一个Actor的资源的时候,只需要将消息发送给另一个Actor,但不关心另一个Actor什么时候处理,因此Actor之间的消息是异步传输的,类似邮件通信。具体的,在Actor模型里每个Actor都有地址,所以它们才能够相互发送消息,尽管许多Actor同时运行,但是一个Actor只能顺序地处理消息。也就是说其它三个Actor发送了给一个Actor分别发送了一条消息,这个Actor只能一次处理一条,如果需要并行处理三条消息,则需要三个Actor分别对这三条消息进行处理,并且如果Actor在处理消息的过程中又接收到一条新的消息,则该新的消息会被存储到Actor的邮箱Mailbox中,每个Actor对应有一个Mailbox。
可见,Actor通过消息传递的方式将不同Actor的可访问的资源进行了分隔,并保障了Actor之间的消息的异步处理,从而避免了使用锁来处理数据条件竞争(data race)的问题。消息传递机制最大的优点就是不会产生数据竞争状态(data race)。
还需要说明的是,上述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,于是本申请实施例应用于分布式任务的调度和处理,可见,由于位于不同的终端上的工作节点在工作的时候,只会占用其所在终端的计算资源,于是在一个终端集群中的多个终端共同处理一个分布式任务,相比单机处理,分布式处理可以大大提升了计算能力和计算速度。需要注意的是,由于本申请实施例采用了Actor模型中的Actor来作为工作节点,才可以不需要分布式锁便能实现分布式任务调度和处理,这是因为Actor只关注接收到的消息的内容,而不关注消息的发送方是本地的Actor还是终端上的Actor,于是只要保证多个Actor之间的消息能够顺利达到即可,也也允许了本申请实施例可以不及住锁便能在包含多个终端的终端集群中构建Actor模型,并实现分布式任务的调度和处理。
204:利用上述调度节点通过消息传递的方式调用上述至少一个任务节点执行上述目标任务。
在本申请实施例中,利用调度节点通过消息传递的方式,调用上述至少一个任务节点执行上述目标任务。具体的,调度节点将用于触发任务节点执行任务的消息发送给任务节点,使得任务节点执行任务,在任务节点执行完任务之后,会向调度节点反馈一个用于指示任务完成的信息,使得调度节点获取完成任务的任务节点,并继续按照执行顺序调度执行其他任务节点,从而最终完成目标任务。
205:若检测到上述调度节点宕机,则从上述至少一个备用调度节点中选取一个备用调度节点作为新的调度节点。
在本申请实施例中,Actor模型中的备用调度节点用于在调度节点宕机的时候,替换该宕机的调度节点作为新的调度节点,然后新的调度节点可以从头开始执行调度,或者接着宕机的调度节点在宕机之前的调度进度,继续执行调度。其中,备用调度节点是按照调度节点的初始化信息创建的,因此备用调度节点可以替代调度节点。
需要说明的是,步骤205与步骤204之间不存在先后关系,步骤205是在步骤204的执行过程中进行,从步骤204开始,步骤204结束之间的任意一个时间点,只要检测到调度节点宕机,就从上述至少一个备用调度节点中选取一个备用调度节点作为新的调度节点,然后继续利用新的调度节点执行上述步骤204,在步骤204执行结束之后,即表示目标任务完成,于是步骤205也结束了。
可见,本申请实施例通过创建至少一个备用调度节点,可以在调度节点宕机时,启用该备用调度节点,以解决调度节点可能宕机的问题。
在一种可实施的方式中,若上述Actor模型中只包括一个备用调度节点,则将在调度节点宕机的时候,直接将上述Actor模型中仅包括的一个备用调度节点作为新的调度节点,若上述Actor模型中包括多个备用调度节点,则在调度节点宕机的时候,从该多个备用调度节点中选取任意一个备用调度节点作为新的调度节点,或者,分别获取每个备用调度节点的创建时间,并确定Actor模型包括的备用调度节点中创建时间最早的调度节点,然后将创建时间最早的备用调度节点作为新的调度节点。
可见,如果是根据备用调度时间的早晚来确定用于替换宕机的调度节点的备用调度节点,好处在于,便于本端装置通过读取当前使用的调度节点的创建时间,可以快速判定已宕机的调用节点的个数,从而获知调用节点的宕机情况。
在一种可实施的方式中,上述为目标任务创建Actor模型指的是,获取目标任务的标签,标签用于指示目标任务的重要程度,并获取目标任务的标签对应的目标数量,目标数量用于指示Actor模型中的备用调度节点的个数,然后创建包括目标数量的备用调度节点的Actor模型。
在本申请实施例中,在创建Actor模型的时候,Actor模型中的备用调度节点的个数多少与目标任务的重要程度有关,目标任务越重要,就为目标任务创建更多的备用调度节点。具体的,在为目标任务创建Actor模型的时候,获取目标任务的标签,并在数据库中获取该目标任务的标签对应的目标数量,然后创创建包含目标数量的备用调度节点。其中,数据库中保存有任务的标签与备用调度节点的个数的对应关系。
在另一种可实施的方式中,上述多个工作节点还包括至少一个监控节点,监控节点用于初始化宕机的调度节点,具体的,若检测到调度节点宕机,则利用监控节点对该宕机的调度节点进行初始化,使得该宕机的调度节点恢复正常。
本申请实施例描述了另一种解决调度节点宕机问题的方法,即如果调度节点宕机,则使用该监控设备对宕机的调度节点进行初始化。具体的,在检测到调度节点宕机之后,使用监控节点根据调度节点的初始化信息对宕机的调度节点进行初始化,使得宕机的调度节点恢复正常。或者,监控节点用于将宕机的调度节点恢复到宕机前一个时刻的正常状态,具体的,在检测到上述调度节点宕机之后,获取记录在数据库中的该宕机的调度节点在宕机前一个时刻的状态信息,并使用监控节点根据上述调度节点在宕机前一个时刻的状态信息对调度节点进行恢复,使得调度节点恢复到上述状态信息对应的正常状态。
在另一种可实施的方式中,在为目标任务创建Actor模型的时候,根据目标任务的重要程度决定是否在上述Actor模型中创建监控节点。具体的,在任务集群中检测到目标任务之后,获取该目标任务的标签,该标签用于指示目标任务的重要等级,若目标任务的重要等级超过了预设等级,则在创建Actor模型的时候,创建上述监控节点,若目标任务的重要等级超过了预设等级,则不创建上述监控节点。
在另一种可实施的方式中,上述监控节点还用于对宕机的任务节点进行初始化,以使得该宕机的任务节点恢复正常。
在另一种可实施的方式中,上述为目标任务创建的Actor模型针对于该模型中包含的每个任务节点分别包括至少一个备用任务节点,该备用任务节点用于替换宕机的任务节点。
206:在检测到上述目标任务完成之后,在上述任务集群中删除上述目标任务。
在本申请实施例中,由于调度节点可以感知到目标任务是否完成,于是本端装置可以检测到上述目标任务是否已完成,若在检测到上述目标任务完成,则在上述任务集群中删除上述目标任务,并检测和执行任务集群中的下一个目标任务。
207:检测已创建的工作节点的个数,并获取该已创建的工作节点的创建时间。
在本申请实施例中,在上述目标任务完成,检测上述已创建的工作节点,统计工作节点的个数,以及每个已创建的工作节点的创建时间。基于创建时间从早到晚的顺序,对已创建的工作节点进行排序。
208:若上述已创建的工作节点的个数大于预设个数,则按照上述创建时间从早到晚的排序,依次删除已创建的工作节点,直到剩下的已创建的工作节点的个数小于或等于预设个数。
在本申请实施例中,系统中的工作节点可能太多而导致本端装置存储空间不足或者系统运行缓慢,于是在完成目标任务之后,检测已创建的工作节点的个数,如果已创建的工作节点的个数超过预设个数,就对工作节点进行删减,直到剩下的工作节点的个数小于等于预设个数。其中,按照工作节点的创建时间由早到晚顺序进行删除,这是因为早创建的工作节点,相较于晚创建的工作节点,被再次使用的几率更小。
上述删除已创建的工作节点的详细过程为,检测已创建的工作节点的个数,并获取该已创建的工作节点的创建时间,若该已创建的工作节点的个数大于预设个数,则确定该已创建的工作节点中创建时间最早的时间节点,并删除所述已创建的工作节点中创建时间最早的工作节点,然后若在删除该已创建的工作节点中创建时间最晚的工作节点之后,已创建的工作节点的个数仍大于预设个数,则触发执行上述确定已创建的工作节点中创建时间最早的工作节点,至删除已创建的工作节点中创建时间最早的工作节点的步骤,直到已创建的工作节点的个数在删除了创建时间最晚的工作节点之后小于或等于预设个数。
本申请实施例相对于上一申请实施例来说更加的详细,且详细描述了在利用调度节点调用任务节点完成目标任务的过程中,若检测到调度节点宕机,则从Actor模型中包括的至少一个备用调度节点中选取一个备用调度节点,替换宕机的调度节点,作为新的调度节点,此外,还详细描述了在目标任务完成之后,若已创建的工作节点超过预设个数,就对多余的工作节点进行清除,清除创建时间较早的工作节点,使得删除之后已创建的工作节点的个数小于等于预设个数。因此本申请实施例一方面在调度节点宕机时,利用备用调度节点来作为新的调度节点,使得任务调度的过程更加可靠,也增加了任务调度的成功率,另一方面,本申请实施例通过在目标任务完成之后及时得对多余的工作节点进行清除,来保障了本装置的系统的顺畅运行,并且保障了下一个目标任务的调度和处理。总的来说任务调度的效率进一步被提高了。
需要说明的是,上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本申请实施例还提供一种任务调度装置,该任务调度装置用于执行前述任一项的任务调度方法的单元。具体地,参见图3,是本申请实施例提供的一种任务调度装置的示意框图。本实施例的任务调度装置包括:检测单元310、创建单元320、执行单元330以及删除单元340。具体的:
检测单元310,用于检测任务集群中是否存在新增的目标任务;
创建单元320,用于在检测到任务集群中存在新增的目标任务的情况下,为上述目标任务创建Actor模型,上述Actor模型包括多个工作节点,上述多个工作节点之间通过消息传递的方式通信,上述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,上述多个工作节点包括一个调度节点和至少一个任务节点,上述调度节点用于调用上述任务节点执行任务;
执行单元330,用于利用上述调度节点通过上述消息传递的方式调用上述至少一个任务节点执行上述目标任务;
删除单元340,用于在检测到上述目标任务完成之后,在上述任务集群中删除上述目标任务。
在另一种可实施的方式中,上述多个工作节还包括至少一个备用调度节点,上述备用调度节点用于替换宕机的调度节点,上述检测单元310,还用于检测上述调度节点是否宕机;上述任务调度装置还包括替换单元350,用于从上述至少一个备用调度节点中选取一个备用调度节点作为新的调度节点。
在另一种可实施的方式中,上述任务调度方式还包括获取单元370,用于分别获取上述至少一个备用调度节点的创建时间;还包括确定单元360,用于确定上述至少一个备用调度节点中创建时间最早的调度节点;上述替换单元350,具体用于将上述创建时间最早的备用调度节点作为上述新的调度节点。
在另一种可实施的方式中,上述获取单元370,还用于获取上述目标任务的标签,上述标签用于指示上述目标任务的重要程度;上述获取单元370,还用于获取上述目标任务的标签对应的目标数量,上述目标数量用于指示上述Actor模型中的备用调度节点的个数;上述创建单元320,还用于创建包括上述目标数量的备用调度节点的Actor模型。
在另一种可实施的方式中,上述多个工作节点还包括至少一个监控节点,上述监控节点用于初始化宕机的调度节点,上述检测单元310,还用于检测上述调度节点宕机;上述任务调度装置还包括修复单元380,用于利用上述监控节点对上述宕机的调度节点进行初始化,使得上述宕机的调度节点恢复正常。
在另一种可实施的方式中,上述检测单元310,用于检测已创建的工作节点的个数;上述获取单元370,用于获取上述已创建的工作节点的创建时间;上述删除单元340,还用于若上述已创建的工作节点的个数大于预设个数,则按照上述创建时间从早到晚的排序,依次删除上述已创建的工作节点,直到剩下的已创建的工作节点的个数小于或等于上述预设个数。
在另一种可实施的方式中,上述检测单元310,具体用于检测上述任务集群中的新增的任务;上述检测单元310,还具体用于若确定上述新增的任务为分布式任务,则确定检测到上述任务集群中存在新增的目标任务。
在本申请实施例中,每当检测单元检测到目标任务,创建单元就为该目标任务建立包括调度节点和任务节点的Actor模型,然后执行单元利用调度节点来调度任务节点执行目标任务,在检测单元检测到目标任务完成之后,删除单元删除该目标任务,可见,本申请所提供的任务调度方法中,由于调度节点和任务节点都是Actor,于是调度节点和任务节点是通过信息传递的方式进行通信的,而信息传递的好处就是不会产生数据竞争的问题,在处理任务的时候无需同步阻塞等待,于是本申请也便不需要借助于锁便可以实现复杂的分布式任务调度,并且大大提高分布式任务处理的并发性能。可见本申请实施例提供了一种高效的任务调度方法。
参见图4,是本申请另一实施例提供的一种任务调度装置示意框图。如图所示的本实施例中的任务调度装置可以包括:一个或多个处理器410和存储器420。上述处理器410和存储器420通过总线430连接。存储器420用于存储计算机程序,计算机程序包括程序指令,处理器410用于执行存储器420存储的程序指令。具体的:
处理器410,用于执行检测单元310的功能,用于检测任务集群中是否存在新增的目标任务;还用于执行创建单元320的功能,用于在检测到任务集群中存在新增的目标任务的情况下,为上述目标任务创建Actor模型,上述Actor模型包括多个工作节点,上述多个工作节点之间通过消息传递的方式通信,上述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,上述多个工作节点包括一个调度节点和至少一个任务节点,上述调度节点用于调用上述任务节点执行任务;还用于执行执行单元330的功能,用于利用上述调度节点通过上述消息传递的方式调用上述至少一个任务节点执行上述目标任务;还用于执行删除单元340的功能,用于在检测到上述目标任务完成之后,在上述任务集群中删除上述目标任务。
在另一种可实施的方式中,上述多个工作节还包括至少一个备用调度节点,上述备用调度节点用于替换宕机的调度节点,上述处理器410,还用于检测上述调度节点是否宕机;处理器410还用于执行替换单元350的功能,用于从上述至少一个备用调度节点中选取一个备用调度节点作为新的调度节点。
在另一种可实施的方式中,上述处理器410还用于执行获取单元370的功能,用于分别获取上述至少一个备用调度节点的创建时间;上述处理器410还用于执行确定单元360的功能,用于确定上述至少一个备用调度节点中创建时间最早的调度节点;上述处理器410还具体用于将上述创建时间最早的备用调度节点作为上述新的调度节点。
在另一种可实施的方式中,上述处理器410还用于获取上述目标任务的标签,上述标签用于指示上述目标任务的重要程度;还用于获取上述目标任务的标签对应的目标数量,上述目标数量用于指示上述Actor模型中的备用调度节点的个数;还用于创建包括上述目标数量的备用调度节点的Actor模型。
在另一种可实施的方式中,上述多个工作节点还包括至少一个监控节点,上述监控节点用于初始化宕机的调度节点,上述处理器410还用于检测上述调度节点宕机;上述处理器410还用于执行修复单元380的功能,用于利用上述监控节点对上述宕机的调度节点进行初始化,使得上述宕机的调度节点恢复正常。
在另一种可实施的方式中,上述处理器410还用于检测已创建的工作节点的个数;还用于获取上述已创建的工作节点的创建时间;还用于若上述已创建的工作节点的个数大于预设个数,则按照上述创建时间从早到晚的排序,依次删除上述已创建的工作节点,直到剩下的已创建的工作节点的个数小于或等于上述预设个数。
在另一种可实施的方式中,上述处理器410,具体用于检测上述任务集群中的新增的任务;还具体用于若确定上述新增的任务为分布式任务,则确定检测到上述任务集群中存在新增的目标任务。
应当理解,在本申请实施例中,所称处理器410可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器420可以包括只读存储器和随机存取存储器,并向处理器410提供指令和数据。存储器420的一部分还可以包括非易失性随机存取存储器。例如,存储器420还可以存储设备类型的信息。
具体实现中,本申请实施例中所描述的处理器410可执行本申请实施例提供的任务调度方法的第一实施例和第二实施例中所描述的实现方式,也可执行本申请实施例所描述的任务调度装置的实现方式,在此不再赘述。
在本申请的另一实施例中提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令被处理器执行。
计算机可读存储介质可以是前述任一实施例的任务调度装置的内部存储单元,例如任务调度装置的硬盘或内存。计算机可读存储介质也可以是任务调度装置的外部存储设备,例如任务调度装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,计算机可读存储介质还可以既包括任务调度装置的内部存储单元也包括外部存储设备。计算机可读存储介质用于存储计算机程序以及任务调度装置所需的其他程序和数据。计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同任务调度方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的任务调度装置和单元的具体工作过程,可以参考前述任务调度方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的任务调度装置和任务调度方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,任务调度装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (10)

1.一种基于Actor模型的任务调度方法,其特征在于,包括:
检测任务集群中是否存在新增的目标任务;
在检测到所述任务集群中存在新增的目标任务的情况下,为所述目标任务创建Actor模型,所述Actor模型包括多个工作节点,所述多个工作节点之间通过消息传递的方式通信,所述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,所述多个工作节点包括一个调度节点和至少一个任务节点,所述调度节点用于调用所述任务节点执行任务;
利用所述调度节点通过所述消息传递的方式调用所述至少一个任务节点执行所述目标任务;
在检测到所述目标任务完成之后,在所述任务集群中删除所述目标任务。
2.根据权利要求1所述的方法,其特征在于,所述多个工作节还包括至少一个备用调度节点,所述备用调度节点用于替换宕机的调度节点,所述方法还包括:
若检测到所述调度节点宕机,则从所述至少一个备用调度节点中选取一个备用调度节点作为新的调度节点。
3.根据权利要求2所述的方法,其特征在于,所述从所述至少一个备用调度节点中选取一个备用调度节点作为新的调度节点,包括:
分别获取所述至少一个备用调度节点的创建时间,并确定所述至少一个备用调度节点中创建时间最早的调度节点;
将所述创建时间最早的备用调度节点作为所述新的调度节点。
4.根据权利要求2所述的方法,其特征在于,所述为所述目标任务创建Actor模型,包括:
获取所述目标任务的标签,所述标签用于指示所述目标任务的重要程度;
获取所述目标任务的标签对应的目标数量,所述目标数量用于指示所述Actor模型中的备用调度节点的个数;
创建包括所述目标数量的备用调度节点的Actor模型。
5.根据权利要求1所述的方法,其特征在于,所述多个工作节点还包括至少一个监控节点,所述监控节点用于初始化宕机的调度节点,所述方法还包括:
若检测到所述调度节点宕机,则利用所述监控节点对所述宕机的调度节点进行初始化,使得所述宕机的调度节点恢复正常。
6.根据权利要求1所述的方法,其特征在于,所述在所述任务集群中删除所述目标任务之后,还包括:
检测已创建的工作节点的个数,并获取所述已创建的工作节点的创建时间;
若所述已创建的工作节点的个数大于预设个数,则按照所述创建时间从早到晚的排序,依次删除所述已创建的工作节点,直到剩下的已创建的工作节点的个数小于或等于所述预设个数。
7.根据权利要求1所述的方法,其特征在于,所述检测任务集群中是否存在新增的目标任务,包括:
检测所述任务集群中的新增的任务;
若确定所述新增的任务为分布式任务,则确定检测到所述任务集群中存在新增的目标任务。
8.一种基于Actor模型的任务调度装置,其特征在于,包括:
检测单元,用于检测任务集群中是否存在新增的目标任务;
创建单元,用于在检测到任务集群中存在新增的目标任务的情况下,为所述目标任务创建Actor模型,所述Actor模型包括多个工作节点,所述多个工作节点之间通过消息传递的方式通信,所述多个工作节点中至少存在两个工作节点分别分布于不同的终端上,所述多个工作节点包括一个调度节点和至少一个任务节点,所述调度节点用于调用所述任务节点执行任务;
执行单元,用于利用所述调度节点通过所述消息传递的方式调用所述至少一个任务节点执行所述目标任务;
删除单元,用于在检测到所述目标任务完成之后,在所述任务集群中删除所述目标任务。
9.一种任务调度装置,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用以执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
CN201910421282.5A 2019-05-20 2019-05-20 一种基于Actor模型的任务调度方法、装置及存储介质 Active CN110231995B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910421282.5A CN110231995B (zh) 2019-05-20 2019-05-20 一种基于Actor模型的任务调度方法、装置及存储介质
PCT/CN2019/102741 WO2020232875A1 (zh) 2019-05-20 2019-08-27 一种基于Actor模型的任务调度方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910421282.5A CN110231995B (zh) 2019-05-20 2019-05-20 一种基于Actor模型的任务调度方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN110231995A true CN110231995A (zh) 2019-09-13
CN110231995B CN110231995B (zh) 2023-08-08

Family

ID=67861430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910421282.5A Active CN110231995B (zh) 2019-05-20 2019-05-20 一种基于Actor模型的任务调度方法、装置及存储介质

Country Status (2)

Country Link
CN (1) CN110231995B (zh)
WO (1) WO2020232875A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110967621A (zh) * 2019-11-11 2020-04-07 北京中电华大电子设计有限责任公司 一种基于Actor模型的SE芯片测试设计方法
CN111026526A (zh) * 2019-11-12 2020-04-17 珠海格力电器股份有限公司 程序的定时器配置方法、装置、存储介质及终端设备
CN111723323A (zh) * 2020-06-11 2020-09-29 湖北美和易思教育科技有限公司 一种在线考试系统试卷答案数据传输方法及装置
CN112291321A (zh) * 2020-10-22 2021-01-29 北京梆梆安全科技有限公司 业务处理方法、装置及系统
CN112612604A (zh) * 2020-12-14 2021-04-06 上海哔哩哔哩科技有限公司 基于Actor模型的任务调度方法、装置
CN113703871A (zh) * 2021-08-31 2021-11-26 平安养老保险股份有限公司 基于自动化处理脚本的任务处理方法及其对应装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345287B1 (en) * 1997-11-26 2002-02-05 International Business Machines Corporation Gang scheduling for resource allocation in a cluster computing environment
CN102831012A (zh) * 2011-06-16 2012-12-19 日立(中国)研究开发有限公司 多节点分布式系统中的任务调度装置和任务调度方法
CN103559082A (zh) * 2013-11-04 2014-02-05 北京华胜天成科技股份有限公司 一种基于队列的分布式任务调度方法、装置及系统
CN103593236A (zh) * 2013-11-14 2014-02-19 华为技术有限公司 一种业务流程调度的计算机设备、方法和装置
CN104461752A (zh) * 2014-11-21 2015-03-25 浙江宇视科技有限公司 一种两级故障容错的多媒体分布式任务处理方法
CN105630589A (zh) * 2014-11-24 2016-06-01 航天恒星科技有限公司 分布式流程调度系统及流程调度、执行方法
CN105912402A (zh) * 2016-04-11 2016-08-31 深圳益邦阳光有限公司 一种基于Actor模型的调度方法及装置
CN106406983A (zh) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 一种集群中的任务调度方法及装置
CN107623731A (zh) * 2017-09-15 2018-01-23 浪潮软件股份有限公司 一种任务调度方法、客户端、服务集群及系统
CN108304255A (zh) * 2017-12-29 2018-07-20 北京城市网邻信息技术有限公司 分布式任务调度方法及装置、电子设备及可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10313861B2 (en) * 2016-09-15 2019-06-04 WiSilica Inc. Wireless control of multiple actor devices by multiple controller devices with communication security

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345287B1 (en) * 1997-11-26 2002-02-05 International Business Machines Corporation Gang scheduling for resource allocation in a cluster computing environment
CN102831012A (zh) * 2011-06-16 2012-12-19 日立(中国)研究开发有限公司 多节点分布式系统中的任务调度装置和任务调度方法
CN103559082A (zh) * 2013-11-04 2014-02-05 北京华胜天成科技股份有限公司 一种基于队列的分布式任务调度方法、装置及系统
CN103593236A (zh) * 2013-11-14 2014-02-19 华为技术有限公司 一种业务流程调度的计算机设备、方法和装置
CN104461752A (zh) * 2014-11-21 2015-03-25 浙江宇视科技有限公司 一种两级故障容错的多媒体分布式任务处理方法
CN105630589A (zh) * 2014-11-24 2016-06-01 航天恒星科技有限公司 分布式流程调度系统及流程调度、执行方法
CN106406983A (zh) * 2015-07-27 2017-02-15 阿里巴巴集团控股有限公司 一种集群中的任务调度方法及装置
CN105912402A (zh) * 2016-04-11 2016-08-31 深圳益邦阳光有限公司 一种基于Actor模型的调度方法及装置
CN107623731A (zh) * 2017-09-15 2018-01-23 浪潮软件股份有限公司 一种任务调度方法、客户端、服务集群及系统
CN108304255A (zh) * 2017-12-29 2018-07-20 北京城市网邻信息技术有限公司 分布式任务调度方法及装置、电子设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈昊 等: "基于Actor模型的高性能分布式XMPP服务器", 《计算机系统应用》, vol. 24, no. 10, pages 62 - 67 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110967621A (zh) * 2019-11-11 2020-04-07 北京中电华大电子设计有限责任公司 一种基于Actor模型的SE芯片测试设计方法
CN111026526A (zh) * 2019-11-12 2020-04-17 珠海格力电器股份有限公司 程序的定时器配置方法、装置、存储介质及终端设备
CN111026526B (zh) * 2019-11-12 2024-01-30 珠海格力电器股份有限公司 程序的定时器配置方法、装置、存储介质及终端设备
CN111723323A (zh) * 2020-06-11 2020-09-29 湖北美和易思教育科技有限公司 一种在线考试系统试卷答案数据传输方法及装置
CN112291321A (zh) * 2020-10-22 2021-01-29 北京梆梆安全科技有限公司 业务处理方法、装置及系统
CN112291321B (zh) * 2020-10-22 2023-08-08 北京梆梆安全科技有限公司 业务处理方法、装置及系统
CN112612604A (zh) * 2020-12-14 2021-04-06 上海哔哩哔哩科技有限公司 基于Actor模型的任务调度方法、装置
CN113703871A (zh) * 2021-08-31 2021-11-26 平安养老保险股份有限公司 基于自动化处理脚本的任务处理方法及其对应装置

Also Published As

Publication number Publication date
CN110231995B (zh) 2023-08-08
WO2020232875A1 (zh) 2020-11-26

Similar Documents

Publication Publication Date Title
CN110231995A (zh) 一种基于Actor模型的任务调度方法、装置及存储介质
CN108062672B (zh) 一种基于区块链智能合约的流程调度方法
CN108287756A (zh) 一种处理任务的方法及装置
CN104601696B (zh) 服务处理方法、服务调用系统、装置和系统
CN107526645B (zh) 一种通信优化方法及系统
CN110162388A (zh) 一种任务调度方法、系统及终端设备
JP4763405B2 (ja) データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ
CN105988876B (zh) 内存分配方法及装置
CN109857580B (zh) 区块链跨链合约调用方法、装置及存储介质
CN104035786B (zh) 一种软件定时器的优化方法及系统
CN108156181A (zh) 一种基于协程异步io的漏洞探测方法及其漏洞扫描系统
CN110704465B (zh) 一种处理业务工单表的方法、装置及存储介质
CN112379992B (zh) 基于角色的多智能体任务协同消息传递及异常处理方法
CN107992367A (zh) 一种Modbus串口数据处理方法
CN109062681A (zh) 一种周期性循环任务的执行方法、系统、装置及存储介质
CN107357630A (zh) 一种实现虚拟机同步的方法、装置和存储介质
CN109298924A (zh) 定时任务的管理方法、计算机可读存储介质和终端设备
CN109240947A (zh) 智能卡数据接收方法及装置
CN116760784A (zh) 一种基于优先级及运行时间的opc ua关键消息调度方法
CN100361084C (zh) 用于利用门管理器维护实体顺序的方法和装置
CN111625414A (zh) 一种数据转换整合软件的自动调度监控系统实现方法
CN109542615A (zh) 一种可变节点通用队列的实现方法、装置及终端设备
CN116302453A (zh) 量子电子混合平台的任务调度方法及装置
CN106406997A (zh) 一种定时器调度方法和装置
CN110445874A (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