CN112416541A - 任务调度的方法和系统 - Google Patents

任务调度的方法和系统 Download PDF

Info

Publication number
CN112416541A
CN112416541A CN202010812336.3A CN202010812336A CN112416541A CN 112416541 A CN112416541 A CN 112416541A CN 202010812336 A CN202010812336 A CN 202010812336A CN 112416541 A CN112416541 A CN 112416541A
Authority
CN
China
Prior art keywords
target
task
target process
tasks
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010812336.3A
Other languages
English (en)
Inventor
王翔宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202010812336.3A priority Critical patent/CN112416541A/zh
Publication of CN112416541A publication Critical patent/CN112416541A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例公开了一种任务调度的方法、系统、计算机设备及计算机可读存储介质,所述方法包括:启动目标进程并将所述目标进程注册到服务器中:从所述服务器中获取进程列表,并根据所述进程列表获取所述目标进程的标识;从数据库中获取任务列表,所述任务列表包括对应于多个任务的多个任务标识;根据所述目标进程的标识和所述多个任务标识,将所述多个任务中的多个目标任务分配给所述目标进程;及通过所述目标进程执行所述多个目标任务。本申请不依赖于中心化的调度模块,将任务调度到分布式系统中执行,并且可以保障任务at least once的执行效果。

Description

任务调度的方法和系统
技术领域
本申请实施例涉及领域,尤其涉及一种任务调度的方法、系统、计算机设备及计算机可 读存储介质。
背景技术
监控系统中,存在着数以万计的周期性监控任务,如果出现监控任务的遗漏执行,可能 产生严重后果。
现有技术通过master节点分配任务,为了保证一致性,master通常为单点,需要额外的 校验逻辑确保任务至少被执行一次执行。同时,整个系统也受限于单点master,系统整体就 无法保证高可靠行和可扩展性。
发明内容
本申请实施例的目的是提供一种任务调度的方法、系统、计算机设备及计算机可读存储 介质,旨在解决如何在分布式系统中,以去中心化的方式实现任务调度的目的。
本申请实施例的一个方面提供了一种任务调度的方法,所述方法包括:启动目标进程并 将所述目标进程注册到服务器中:从所述服务器中获取进程列表,并根据所述进程列表获取 所述目标进程的标识;从数据库中获取任务列表,所述任务列表包括对应于多个任务的多个 任务标识;根据所述目标进程的标识和所述多个任务标识,将所述多个任务中的多个目标任 务分配给所述目标进程;及通过所述目标进程执行所述多个目标任务。
可选的,所述启动目标进程并将所述目标进程注册到服务器中,包括:启动所述目标进 程;若启动所述目标进程成功后,根据所述目标进程的注册名称,将所述目标进程注册到所 述服务器,所述注册名称包括:主机名和进程号。
可选的,所述方法还包括:若启动失败,则不注册节点到所述服务器;和/或,若运行 异常,则退出并注销所述服务器的节点。
可选的,所述根据所述进程列表获取所述目标进程的标识,包括:获取所述目标进程的 注册名称;获取所述注册名称在所述进程列表中的排序,所述进程列表包括多个进程的多个 注册名称。
可选的,所述根据所述目标进程的标识和所述多个任务标识,将所述多个任务中的多个 目标任务分配给所述目标进程,包括:获取目标任务,所述目标任务的标识是通过对所述目 标进程的标识进行取模运算得到的。
可选的,所述通过所述目标进程执行所述多个目标任务,包括:根据上一次执行结果, 执行分配后的每一个目标任务;所述根据上一次执行结果,执行分配后的每一个目标任务, 包括:若上一次执行结束周期与本周期之间无间隔周期,则直接执行本周期对应的目标任务; 若上一次执行结束周期与本周期之间存在间隔周期,所述间隔周期为目标任务未被执行的周 期,则先执行间隔周期对应目标任务,再执行本周期对应目标任务;若目标任务执行失败, 则根据具体的错误类型确定是否需要重试。
本申请实施例的一个方面又提供了一种任务调度的装置,所述装置包括:注册模块,用 于启动目标进程并将所述目标进程注册到服务器中;第一获取模块,用于从所述服务器中获 取进程列表,并根据所述进程列表获取所述目标进程的标识;第二获取模块,用于从数据库 中获取任务列表,所述任务列表包括对应于多个任务的多个任务标识;分配模块,用于根据 所述目标进程的标识和所述多个任务标识,将所述多个任务中的多个目标任务分配给所述目 标进程;执行模块,用于通过所述目标进程执行所述多个目标任务。
本申请实施例的一个方面又提供了一种计算机设备,包括存储器、处理器以及存储在存 储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方 法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,包括存储器、处理器以及 存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现 如上述方法的步骤。
本申请实施例的一个方面又提供了一种任务调度的方法,所述方法包括:接收目标进程 的注册;向所述目标进程发送进程列表,以使得所述目标进程根据所述进程列表获取所述目 标进程的标识,并根据所述目标进程的标识获取多个目标任务,通过所还是目标进程执行所 述多个目标任务。
本申请实施例的一个方面又提供了一种任务调度的方法,所述方法包括:接收目标进程 的数据请求指令;根据所述数据请求指令,向所述目标进程发送任务列表,以使得所述目标 进程获取多个目标任务,并通过所述目标进程执行所述多个目标任务。
本申请实施例的一个方面又提供了一种任务调度的系统,所述系统包括:移动终端启动 目标进程并将所述目标进程注册到服务器中:从所述服务器中获取进程列表,并根据所述进 程列表获取所述目标进程的标识;从数据库中获取任务列表,所述任务列表包括对应于多个 任务的多个任务标识;根据所述目标进程的标识和所述多个任务标识,将所述多个任务中的 多个目标任务分配给所述目标进程;及通过所述目标进程执行所述多个目标任务;
服务器接收目标进程的注册,向所述目标进程发送进程列表,以使得所述目标进程根据 所述进程列表获取所述目标进程的标识,并根据所述目标进程的标识获取多个目标任务,通 过所还是目标进程执行所述多个目标任务;
数据库接收目标进程的数据请求指令;根据所述数据请求指令,向所述目标进程发送任 务列表,以使得所述目标进程获取多个目标任务,并通过所述目标进程执行所述多个目标任 务。
本申请实施例提供的任务调度的方法、系统、计算机设备及计算机可读存储介质,不依 赖于中心化的调度模块,将任务调度到分布式系统中执行,并且可以保障任务atleast once 的执行效果。
附图说明
图1示意性示出了根据本申请实施例的应用环境图;
图2示意性示出了根据本申请实施例一的方法的流程图;
图3示意性示出了根据本申请实施例一的方法的另一流程图;
图4示意性示出了根据本申请实施例一的方法的另一流程图;
图5示意性示出了根据本申请实施例一的方法的另一流程图;
图6示意性示出了根据本申请实施例一的方法的另一流程图;
图7示意性示出了根据本申请实施例二的方法的另一流程图;
图8示意性示出了根据本申请实施例三的任务调度的系统的框图;
图9示意性示出了本申请实施例四的适于实现任务调度的硬件架构示意图;
图10示意性示出本申请实施例六的方法的流程图;
图11示意性示出本申请实施例七的方法的流程图;
图12示意性示出本申请实施例八的系统结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申 请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于 限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所 获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而 不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有 “第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间 的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案 的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求 的保护范围之内。
以下为本申请定义的一些术语的术语解释:
任务/task:可以交由系统执行的可调度实体。通常每个任务对应通过一个程序或者一组 程序执行的过程,其执行状态可被追踪,并且拥有一个最终状态,包括完成(成功或者失败)、 未完成,被终止等等。
分布式系统:分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作 的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机 无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。
周期性任务:需要以一定周期重复实行的任务。
调度:将任务分配给分布式系统中某一节点执行的过程。
图1示意性示出了根据本申请实施例的环境应用示意图。
服务器12通过网络14连接数据库13以及多个移动终端11。在一些实施例中,移动终 端11的功能、数据库的功能可以集中在服务器12中实现。
服务器12可以为:Zookeeper。ZooKeeper是一个分布式的强一致的应用程序协调服务, 可以用于配置管理、名字服务、分布式同步和集群管理。
Master/Worker,是分布式系统的一种实现模型。Master用于系统的管理与调度。Worker 用于具体任务执行的进程,Worker运行在移动终端11中。
服务器12可以位于诸如单个场所之类的数据中心,或者分布在不同的地理位置(例如, 在多个场所)中。服务器12可以经由一个或多个网络14提供服务。网络14包括各种网络 设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或类似。网络14可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,其组合等。网络14可以包括无线链路,诸如蜂窝链路,卫星链路,Wi-Fi链路等。
移动终端11注册到服务器12中,服务器12维持一个进程列表,数据库13维持一个任 务列表,移动终端11启动目标进程成功后,将目标进程注册到服务器12中,注册名称包括: 主机名和进程号。服务器12将进程列表发给移动终端11,移动终端11根据进程列表获取目 标进程的标识,移动终端11根据目标进程的标识,从数据库13维护的任务列表中获取多个 目标任务。移动终端11通过目标进程执行多个目标任务。
本申请使用去中心化的任务分配算法进行任务调度,同时对单次任务的执行结果进行持 久化存储,分布式的worker节点可以独立进行任务的获取和重试,摆脱了对于单点master 的依赖,逻辑简单可靠。
实施例一
图2示意性示出了根据本申请实施例一的方法的流程图。可以理解,本方法实施例可以 被执行在移动终端11中,且本方法实施例的流程图不用于对执行步骤的顺序进行限定。
如图2所示,该任务调度的方法可以包括步骤S200~S208,其中:
步骤S200,启动目标进程并将所述目标进程注册到服务器中。
示例的,如图3所示,步骤S200包括S300~S302。其中,步骤S300,启动所述目标进程;步骤S302,若启动所述目标进程成功后,根据所述目标进程的注册名称,将所述目标 进程注册到所述服务器,所述注册名称包括:主机名和进程号。具体的,移动终端11启动 成功,注册节点到zookeeper12,注册名称需要全局唯一,注册名称包括:主机名+进程号。 本实施例采用具有全局唯一标识的注册名称进行注册,可以用简单的方式区别其他进程,方便每一个进程获取唯一的进程标识。
步骤S202,从所述服务器中获取进程列表,并根据所述进程列表获取所述目标进程的 标识。
其中,进程列表包括全量worker列表,数量为N。
其中,如图4所示,步骤S202包括S400~S402。其中,步骤S400,获取所述目标进程的注册名称;步骤S402,获取所述注册名称在所述进程列表中的排序,所述进程列表包括多个进程的多个注册名称。具体的,进程列表中,按照注册名称进行排序,排序后,每个worker对应一个唯一的worker_id,0<=worker_id<N。
本实施例通过唯一标识的设备ID进行排序,获取每一个设备对应的worker_id,使得运 行简洁,不会增加算法的复杂度。
步骤S204,从数据库中获取任务列表,所述任务列表包括对应于多个任务的多个任务 标识。
其中,任务列表包括全量任务列表,数量为M,根据task唯一id进行大小排序,每个task对应一个唯一的task_id,0<=task_id<M。
步骤S206,根据所述目标进程的标识和所述多个任务标识,将所述多个任务中的多个 目标任务分配给所述目标进程。
其中,移动终端11基于全量任务列表计算此worker需要执行的任务列表,计算方式如 下:task_list=[task_id if task_id%N==worker_id]。例如,worker的数量N为5,worker_id 的范围为0~4,task的数量M为20,task_id的范围为0~19,对于worker_id=0的worker,分 配到此worker上执行的task_id需要满足task_id%5==0,即0,5,10,15。
示例的,移动终端11获取目标任务,所述目标任务的标识是通过对所述目标进程的标 识进行取模运算得到的。
步骤S208,通过所述目标进程执行所述多个目标任务。
其中,如图5所示,步骤S208包括S500~S504。其中,步骤S500,若上一次执行结束周期与本周期之间无间隔周期,则直接执行本周期对应的目标任务;步骤S502,若上一次执行结束周期与本周期之间存在间隔周期,所述间隔周期为目标任务未被执行的周期,则先 执行间隔周期对应目标任务,再执行本周期对应目标任务;步骤S504,若目标任务执行失 败,则根据具体的错误类型确定是否需要重试。
本实施例对周期进行分类,限定每一个任务在各个周期的执行行为,可以避免任务被遗 漏,增强执行算法的准确性。
其中,结束周期:任务上次被调度执行的周期,是一个时间节点,例如20200726 9:00, 即该结束周期为2020年7月26日9点整;
间隔周期:就是任务被周期性执行的时间间隔,例如1分钟;
本周期:就是worker本次调度的周期范围,例如,20200726 9:00-20200726 9:01,即该周期范围为2020年7月26日9点整至9点零1分。
具体的,worker12调度目标任务,对于每一个目标任务,先判断当前目标任务之前的结 束周期和本周期有无间隔周期,若无间隔周期,则worker12直接执行本周起对应的目标任 务。若有间隔周期,则执行间隔周期对应的目标任务,再执行本周期对应的目标任务。若目 标任务执行失败,如果任务开发人员,认为此次错误需要进行重试,调度系统就会进行重试, 例如:执行超时。如果认为此错误不需要进行重试,则不进行重试,例如:参数错误。
可选的,如图6所示,还包括:S600~S602。步骤S600,若注册不成功,则移动终端11不注册节点到所述服务器12;和/或,步骤S602,若运行异常,则移动终端11退出并注销 所述服务器12的节点。
本实施例对应不同的注册行为,有不同的处理行为,可以更加全面的覆盖任务调度的所 有情况。
本申请不依赖于中心化的调度模块,将任务调度到分布式系统中执行,并且可以保障任 务at least once的执行效果。
实施例二
图7示意性示出了根据本申请实施例二的任务调度的流程图。可以理解,本方法实施例 中的流程图不用于对执行步骤的顺序进行限定。下面以worker11为执行主体进行示例性描 述。
其中,如图7所示,该投屏方法可以包括步骤S700~S728,其中:
步骤S700,worker启动并向zookeeper注册节点;
步骤S702,判断zookeeper是否注册成功;
步骤S704,若zookeeper未能注册成功,则退出;
步骤S706,若zookeeper注册成功,则本周期执行任务;
步骤S708,获取全量worker列表并根据名称排序;
步骤S710,获取任务列表并根据ID排序;
步骤S712,计算此周期需要此worker执行的任务列表:task_list=[task_id iftask_id%N ==worker_id];
步骤S714,执行任务列表中每个任务;
步骤S716,获取上次执行结果,调度此周期的运行;
步骤S718,判断存在间隔周期;
步骤S720,若存在间隔周期,则执行间隔周期任务;
步骤S722,若不存在间隔周期,则执行本周期任务;
步骤S724,记录本周期任务的结果;
步骤S726,判断所有任务是否执行完毕,若是,则返回步骤706;若否,则返回步骤714。
示例的,N数量worker启动,并向zookeeper进行注册;
启动成功,注册节点到zookeeper,注册名称需要全局唯一,例如主机名+进程号;
启动失败,不注册节点到zookeeper;
运行异常,worker退出,并注销zookeeper节点。
单个worker按照一定周期(run interval)获取任务列表,执行任务,并记录任务执行结 果。
单个worker从zookeeper获取全量worker列表,数量为N,按照名称进行排序,排序后, 每个worker对应一个唯一的worker_id,0<=worker_id<N;
从数据库获取全量任务列表,数量为M,根据task唯一id进行大小排序,每个task对 应一个唯一的task_id,0<=task_id<M。
基于全量任务列表计算此worker需要执行的任务列表,计算方式如下:
task_list=[task_id if task_id%N==worker_id];
对于任务列表中的每个任务:根据任务上次执行结束周期,调度本周期的执行,并将执 行结果保存到数据库。
如果上次执行结束周期与本周期之间无间隔周期,直接执行本周期对应任务。
如果上次执行结束周期与本周期之间存在间隔周期(即存在此任务未被执行的周期), 先执行间隔周期对应任务,再执行本周期对应任务。
如果任务执行失败,需要根据具体错误类型决定是否需要重试(依赖任务逻辑实现)
重复执行此过程。
本申请不依赖于中心化的调度模块,将任务调度到分布式系统中执行,并且可以保障任 务at least once的执行效果。
实施例三
图8示意性示出了根据本申请实施例三的任务调度的系统的框图,该任务调度的系统可 以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或 多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定 功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图8所示,该任务调度的装置800可以包括注册模块800、第一获取模块802、第二获取模块804、分配模块806、执行模块808。其中,
注册模块800,用于启动目标进程并将所述目标进程注册到服务器中;
第一获取模块802,用于从所述服务器中获取进程列表,并根据所述进程列表获取所述 目标进程的标识;
第二获取模块804,用于从数据库中获取任务列表,所述任务列表包括对应于多个任务 的多个任务标识;
分配模块806,用于根据所述目标进程的标识和所述多个任务标识,将所述多个任务中 的多个目标任务分配给所述目标进程;
执行模块808,用于通过所述目标进程执行所述多个目标任务。
可选的,注册模块800,用于:启动所述目标进程;
若启动所述目标进程成功后,根据所述目标进程的注册名称,将所述目标进程注册到所 述服务器,所述注册名称包括:主机名和进程号。
可选的,所述系统还用于:若启动失败,则不注册节点到所述服务器;和/或,
若运行异常,则退出并注销所述服务器的节点。
可选的,第一获取模块802,用于:获取所述目标进程的注册名称;
获取所述注册名称在所述进程列表中的排序,所述进程列表包括多个进程的多个注册名 称。
可选的,分配模块806,用于:获取目标任务,所述目标任务的标识是通过对所述目标 进程的标识进行取模运算得到的。
可选的,执行模块808,用于:根据上一次执行结果,执行分配后的每一个目标任务;
所述根据上一次执行结果,执行分配后的每一个目标任务,包括:
若上一次执行结束周期与本周期之间无间隔周期,则直接执行本周期对应的目标任务;
若上一次执行结束周期与本周期之间存在间隔周期,所述间隔周期为目标任务未被执行 的周期,则先执行间隔周期对应目标任务,再执行本周期对应目标任务;
若目标任务执行失败,则根据具体的错误类型确定是否需要重试。
本申请不依赖于中心化的调度模块,将任务调度到分布式系统中执行,并且可以保障任 务at least once的执行效果。
实施例四
图9示意性示出了本申请实施例四的适于实现任务调度的硬件架构示意图。
本实施例中,计算机设备16可以用于作为提供商网络2或组成提供商网络2的组成部 分,计算机设备16可以是诸如虚拟机主机进程和一个或多个虚拟机实例,或者是机架式服 务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所 组成的服务器集群)等。
本实施例中,计算机设备16也可以用于作为是移动终端11或组成移动终端11的组成 部分。当计算机设备16是移动终端11或组成移动终端11的组成部分时,计算机设备16可以是诸如智能手机、电脑、投影仪、机顶盒等。
本实施例中,计算机设备16是一种能够按照事先设定或者存储的指令,自动进行数值 计算和/或信息处理的设备。如图9所示,计算机设备16至少包括但不限于:可通过系统总 线相互通信链接存储器1610、处理器1620、网络接口1630。其中:
存储器1610至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、 多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可 编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器1610可 以是计算机设备16的内部存储模块,例如该计算机设备16的硬盘或内存。在另一些实施例 中,存储器1610也可以是计算机设备16的外部存储设备,例如该计算机设备16上配备的 插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简 称为SD)卡,闪存卡(Flash Card)等。当然,存储器1610还可以既包括计算机设备16的 内部存储模块也包括其外部存储设备。本实施例中,存储器1610通常用于存储安装于计算 机设备16的操作系统和各类应用软件,例如弹幕彩蛋的交互方法的程序代码等。此外,存 储器1610还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器1620在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、 控制器、微控制器、微处理器、或其他数据处理芯片。该处理器1620通常用于控制计算机 设备16的总体操作,例如执行与计算机设备16进行数据交互或者通信相关的控制和处理等。 本实施例中,处理器1620用于运行存储器1610中存储的程序代码或者处理数据。
网络接口1630可包括无线网络接口或有线网络接口,该网络接口1630通常用于在计算 机设备16与其他计算机设备之间建立通信链接。例如,网络接口1630用于通过网络将计算 机设备16与外部终端相连,在计算机设备16与外部终端之间的建立数据传输通道和通信链 接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网 络。
需要指出的是,图9仅示出了具有部件1610-1630的计算机设备,但是应理解的是,并 不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器1610中的弹幕彩蛋的交互方法还可以被分割为一个或者 多个程序模块,并由一个或多个处理器(本实施例为处理器1620)所执行,以完成本申请。
实施例五
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程 序,计算机程序被处理器执行时实现实施例中的弹幕彩蛋的交互方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD 或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存 储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储 单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是 计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart MediaCard,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card) 等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储 设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的弹幕彩蛋的交互方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
本实施例六
图10示意性示出本申请实施例六的方法的流程图。可以理解,本方法实施例可以被执 行在服务器12中,且本方法实施例的流程图不用于对执行步骤的顺序进行限定。
如图10所示,所述方法包括步骤S1000~S1002;
步骤S1000,接收目标进程的注册;
步骤S1002,向所述目标进程发送进程列表,以使得所述目标进程根据所述进程列表获 取所述目标进程的标识,并根据所述目标进程的标识获取多个目标任务,通过所还是目标进 程执行所述多个目标任务。
移动终端11注册到服务器12中,服务器12维持一个进程列表,数据库13维持一个任 务列表,移动终端11启动目标进程成功后,将目标进程注册到服务器12中,注册名称包括: 主机名和进程号。服务器12将进程列表发给移动终端11,移动终端11根据进程列表获取目 标进程的标识,移动终端11根据目标进程的标识,从数据库13维护的任务列表中获取多个 目标任务。移动终端11通过目标进程执行多个目标任务。
本实施例七
图11示意性示出本申请实施例七的方法的流程图。可以理解,本方法实施例可以被执 行在数据库13中,且本方法实施例的流程图不用于对执行步骤的顺序进行限定。
如图11所示,所述方法包括步骤S1100~S1102;
S1100,接收目标进程的数据请求指令;
S1102,根据所述数据请求指令,向所述目标进程发送任务列表,以使得所述目标进程 获取多个目标任务,并通过所述目标进程执行所述多个目标任务。
实施例八
图12示意性示出本申请实施例八的系统结构图。可以理解,本实施例可以被执行在系 统中。
移动终端1200启动目标进程并将所述目标进程注册到服务器中:从所述服务器中获取 进程列表,并根据所述进程列表获取所述目标进程的标识;从数据库中获取任务列表,所述 任务列表包括对应于多个任务的多个任务标识;根据所述目标进程的标识和所述多个任务标 识,将所述多个任务中的多个目标任务分配给所述目标进程;及通过所述目标进程执行所述 多个目标任务;
服务器1202接收目标进程的注册,向所述目标进程发送进程列表,以使得所述目标进 程根据所述进程列表获取所述目标进程的标识,并根据所述目标进程的标识获取多个目标任 务,通过所还是目标进程执行所述多个目标任务;
数据库1204程的数据请求指令;根据所述数据请求指令,向所述目标进程发送任务列 表,以使得所述目标进程获取多个目标任务,并通过所述目标进程执行所述多个目标任务。
具体的,移动终端1200注册到服务器1202中,服务器1202维持一个进程列表,数据库1204维持一个任务列表,移动终端1200启动目标进程成功后,将目标进程注册到服务器1202中,注册名称包括:主机名和进程号。服务器1202将进程列表发给移动终端1200,移 动终端1200根据进程列表获取目标进程的标识,移动终端1200根据目标进程的标识,从数 据库1204维护的任务列表中获取多个目标任务。移动终端1200通过目标进程执行多个目标任务。
本申请使用去中心化的任务分配算法进行任务调度,同时对单次任务的执行结果进行持 久化存储,分布式的worker节点可以独立进行任务的获取和重试,摆脱了对于单点master 的依赖,逻辑简单可靠。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明 书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域, 均同理包括在本申请的专利保护范围内。

Claims (12)

1.一种任务调度的方法,其特征在于,所述方法包括:
启动目标进程并将所述目标进程注册到服务器中;
从所述服务器中获取进程列表,并根据所述进程列表获取所述目标进程的标识;
从数据库中获取任务列表,所述任务列表包括对应于多个任务的多个任务标识;
根据所述目标进程的标识和所述多个任务标识,将所述多个任务中的多个目标任务分配给所述目标进程;及
通过所述目标进程执行所述多个目标任务。
2.根据权利要求1所述的方法,其特征在于,所述启动目标进程并将所述目标进程注册到服务器中,包括:
启动所述目标进程;
若启动所述目标进程成功后,将所述目标进程注册到所述服务器,其中,所述目标进程的注册名称全局唯一。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若启动失败,则不注册节点到所述服务器;和/或,
若运行异常,则退出并注销所述服务器的节点。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述根据所述进程列表获取所述目标进程的标识,包括:
获取所述目标进程的注册名称;
获取所述注册名称在所述进程列表中的排序,所述进程列表包括多个进程的多个注册名称。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标进程的标识和所述多个任务标识,将所述多个任务中的多个目标任务分配给所述目标进程,包括:
获取目标任务,所述目标任务的标识是通过对所述目标进程的标识进行取模运算得到的。
6.根据权利要求1至3任意一项所述的方法,其特征在于,所述通过所述目标进程执行所述多个目标任务,包括:
根据上一次执行结果,执行分配后的每一个目标任务;
所述根据上一次执行结果,执行分配后的每一个目标任务,包括:
若上一次执行结束周期与本周期之间无间隔周期,则直接执行本周期对应的目标任务;
若上一次执行结束周期与本周期之间存在间隔周期,所述间隔周期为目标任务未被执行的周期,则先执行间隔周期对应目标任务,再执行本周期对应目标任务;
若目标任务执行失败,则根据具体的错误类型确定是否需要重试。
7.一种任务调度的装置,其特征在于,所述装置包括:
注册模块,用于启动目标进程并将所述目标进程注册到服务器中;
第一获取模块,用于从所述服务器中获取进程列表,并根据所述进程列表获取所述目标进程的标识;
第二获取模块,用于从数据库中获取任务列表,所述任务列表包括对应于多个任务的多个任务标识;
分配模块,用于根据所述目标进程的标识和所述多个任务标识,将所述多个任务中的多个目标任务分配给所述目标进程;
执行模块,用于通过所述目标进程执行所述多个目标任务。
8.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-6任一项所述方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1-6任一项所述方法的步骤。
10.一种任务调度的方法,其特征在于,所述方法包括:
接收目标进程的注册;
向所述目标进程发送进程列表,以使得所述目标进程根据所述进程列表获取所述目标进程的标识,并根据所述目标进程的标识获取多个目标任务,通过所还是目标进程执行所述多个目标任务。
11.一种任务调度的方法,其特征在于,所述方法包括:
接收目标进程的数据请求指令;
根据所述数据请求指令,向所述目标进程发送任务列表,以使得所述目标进程获取多个目标任务,并通过所述目标进程执行所述多个目标任务。
12.一种任务调度的系统,其特征在于,所述系统包括:
移动终端启动目标进程并将所述目标进程注册到服务器中:从所述服务器中获取进程列表,并根据所述进程列表获取所述目标进程的标识;从数据库中获取任务列表,所述任务列表包括对应于多个任务的多个任务标识;根据所述目标进程的标识和所述多个任务标识,将所述多个任务中的多个目标任务分配给所述目标进程;及通过所述目标进程执行所述多个目标任务;
服务器接收目标进程的注册,向所述目标进程发送进程列表,以使得所述目标进程根据所述进程列表获取所述目标进程的标识,并根据所述目标进程的标识获取多个目标任务,通过所还是目标进程执行所述多个目标任务;
数据库接收目标进程的数据请求指令;根据所述数据请求指令,向所述目标进程发送任务列表,以使得所述目标进程获取多个目标任务,并通过所述目标进程执行所述多个目标任务。
CN202010812336.3A 2020-08-13 2020-08-13 任务调度的方法和系统 Pending CN112416541A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010812336.3A CN112416541A (zh) 2020-08-13 2020-08-13 任务调度的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010812336.3A CN112416541A (zh) 2020-08-13 2020-08-13 任务调度的方法和系统

Publications (1)

Publication Number Publication Date
CN112416541A true CN112416541A (zh) 2021-02-26

Family

ID=74854892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010812336.3A Pending CN112416541A (zh) 2020-08-13 2020-08-13 任务调度的方法和系统

Country Status (1)

Country Link
CN (1) CN112416541A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109814998A (zh) * 2019-01-22 2019-05-28 中国联合网络通信集团有限公司 一种多进程任务调度的方法及装置
CN110673938A (zh) * 2019-09-23 2020-01-10 腾讯科技(深圳)有限公司 任务处理方法、系统、服务器及存储介质
WO2020024732A1 (zh) * 2018-08-01 2020-02-06 Oppo广东移动通信有限公司 进程处理方法、电子设备、计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020024732A1 (zh) * 2018-08-01 2020-02-06 Oppo广东移动通信有限公司 进程处理方法、电子设备、计算机可读存储介质
CN109814998A (zh) * 2019-01-22 2019-05-28 中国联合网络通信集团有限公司 一种多进程任务调度的方法及装置
CN110673938A (zh) * 2019-09-23 2020-01-10 腾讯科技(深圳)有限公司 任务处理方法、系统、服务器及存储介质

Similar Documents

Publication Publication Date Title
CN108717379B (zh) 电子装置、分布式任务调度方法及存储介质
CN107733708B (zh) 设备参数配置方法、装置、计算机设备和存储介质
CN111654399B (zh) 基于sd-wan的组网方法、装置、设备及存储介质
CN112486535B (zh) 一种用于NB-IoT设备的远程升级方法及系统
CN110222535B (zh) 区块链配置文件的处理装置、方法及存储介质
EP3291592A1 (en) Monitoring management method and apparatus
CN112272243A (zh) 地址分配方法
CN113179304A (zh) 消息下发方法、系统、设备及存储介质
CN112416488A (zh) 一种用户画像实现的方法、装置、计算机设备及计算机可读存储介质
CN117931756B (zh) 一种基于Flink的FTP文件实时监控分析系统及方法
CN113220434B (zh) 基于依赖模型的任务调度方法和依赖模型配置方法
CN109286617B (zh) 一种数据处理方法及相关设备
CN110569129A (zh) 资源分配方法及装置、存储介质、电子装置
CN112388625B (zh) 任务的下发方法及装置、任务的执行方法及装置
CN112416541A (zh) 任务调度的方法和系统
CN111756800A (zh) 一种处理突发流量的方法和系统
CN112650815B (zh) 环境数据的同步方法及装置、存储介质及电子装置
CN112035579A (zh) 图管理、数据存储、数据查询方法、装置及存储介质
CN111817820B (zh) 设备的编码方法及装置、基于二总线的编码系统
CN115309525A (zh) 基于微服务的分布式任务调度方法、系统、设备和介质
CN110113181B (zh) 节点配置方法、装置、计算机装置、及可读存储介质
CN114546829A (zh) 测试方案体系的方法、装置、存储介质及电子设备
CN114968489A (zh) 自定义服务的本地调测方法、装置和计算机可读存储介质
CN113806056B (zh) 定时任务处理方法、装置、计算机设备和存储介质
CN114338535B (zh) 基于zookeeper的集群限流方法、系统、设备及存储介质

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