分布式系统中的任务调度方法和装置制造方法及图纸

技术编号:24707386 阅读:26 留言:0更新日期:2020-06-30 23:53
本申请公开了一种分布式系统中的任务调度方法和装置,该方法包括:主节点接收来自工作节点的刷新信息,刷新信息包括检测工作节点列表中是否有工作节点的信息;所述主节点接收任务;所述主节点将所述任务调度给所述工作节点列表中的一个工作节点。该方法能够自动将任务调度至工作节点,简化软件开发架构,进一步降低了运维成本。

【技术实现步骤摘要】
分布式系统中的任务调度方法和装置
本专利技术一般涉及互联网领域,具体涉及一种分布式系统中的任务调度方法和装置。
技术介绍
目前,在对ThinkDB的开发过程中,有很多后台任务均需要周期性或者定时执行,以快速实现其功能,例如:数据同步、后台逻辑任务等,其中,很多计算机系统中任务的执行是由调度服务器进行触发调度以实现对后台任务的管理和维护。传统技术中,可以使用Java软件开发包JDK来对后台任务进行周期性调度,从而快速实现软件功能,但是随着后台任务的不断增加,对于一些定时任务的管理和维护,其只能在同一时刻允许执行一个任务,添加每个任务均需要开发一些其他的逻辑功能,导致开发成本高;另外,也可以使用开源分布式调度平台elastic-job,但是在进行调度的过程中,该方法需要引入分布式协调组件zookeeper,导致其维护成本高,且开发过程复杂。
技术实现思路
鉴于现有技术中的上述缺陷或不足,期望提供一种分布式系统中的任务调度方法和装置,能够将任务自动调度给工作节点,简化了软件开发架构。第一方面,本专利技术提供了一种分布式系统中的任务调度方法,该方法包括:主节点接收来自工作节点的刷新信息,所述刷新信息包括检测工作节点列表中是否有工作节点的信息;所述主节点接收任务;所述主节点将所述任务调度给所述工作节点列表中的一个工作节点。在其中一个实施例中,所述主节点检测所述工作节点列表中是否有工作节点的信息,还包括:如果所述工作节点列表没有所述工作节点的信息,则在所述工作节点列表中添加所述工作节点的信息并记录刷新时间,如果工作节点列表有所述工作节点的信息,则更新所述工作节点的刷新时间。在其中一个实施例中,所述方法还包括:所述主节点执行指定操作;所述指定操作包括:确定所述工作节点列表中的工作节点的刷新时间;判断每个所述工作节点的刷新时间距离当前时间是否达到预设阈值;若达到所述预设阈值,则在所述工作节点列表中删除所述工作节点。在其中一个实施例中,所述主节点将所述任务调度给所述工作节点列表中的一个工作节点,包括:当接收到任务请求时,所述主节点通过RPC开源框架GRPC将所述任务调度给所述工作节点列表中的工作节点。在其中一个实施例中,其中主节点将所述任务调度给所述工作节点列表中的一个工作节点包括:所述主节点通过轮询的方式将所述任务调度给所述工作节点列表中的一个工作节点。第二方面,本申请实施例提供了一种分布式系统中的任务调度装置,该装置包括:信息接收模块,用于主节点接收来自工作节点的刷新信息,所述刷新信息包括检测工作节点列表中是否有工作节点的信息;任务接收模块,用于所述主节点接收任务;调度模块,用于所述主节点并将所述任务调度给所述工作节点列表中的一个工作节点。在其中一个实施例中,所述信息接收模块,还包括:如果所述工作节点列表没有所述工作节点的信息,信息接收模块还用于在所述工作节点列表中添加所述工作节点的信息并记录刷新时间;如果工作节点列表有所述工作节点的信息,信息接收模块还用于更新所述工作节点的刷新时间。在其中一个实施例中,所述装置,还用于所述主节点执行指定操作:所述指定操作包括:确定所述工作节点列表中的工作节点的刷新时间;判断每个所述工作节点的刷新时间距离当前时间是否达到预设阈值;若达到所述预设阈值,则在所述工作节点列表中删除所述工作节点。在其中一个实施例中,所述调度模块,具体用于当接收到任务请求时,所述主节点通过RPC开源框架GRPC将所述任务调度给所述工作节点列表中的工作节点。在其中一个实施例中,所述调度模块,包括:轮询单元,用于所述主节点通过轮询的方式将所述任务调度给所述工作节点列表中的工作节点。本专利技术实施例提供的分布式系统中的调度方法和装置,主节点接收来自工作节点的刷新信息,并通过主节点接收任务,将上述任务调度给工作节点列表中的一个工作节点,该方法能够将任务自动调度至工作节点,缓解了主节点的任务执行压力,并且简化了软件开发架构,进一步降低了运维成本,很大程度上提高了开发效率。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1为本专利技术实施例提供的分布式系统中的任务调度方法的流程示意图;图2为本专利技术实施例提供的分布式系统中的任务调度方法的流程示意图;图3为本专利技术实施例提供的分布式系统中的任务调度方法的结构示意图;图4为本专利技术实施例提供的分布式系统中的任务调度装置的结构示意图;图5为本专利技术实施例提供的计算机设备的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。如
技术介绍
中提到的,在ThinkDB的开发过程中,实现很多服务功能均需要任务调度库quartz,如公司需要定期执行任务调度生成报表、博客等的定时更新等,而例如当前有多个任务要求在指定时间内执行,如每周二三点执行任务A,每天隔5s执行任务B,因此必须进行任务调度,以实现多任务的定时执行,传统技术中,可以采用java的软件开发包JDK自带的ScheduledExecutorService来实现任务调度,从而快速实现软件的功能需求,但是随着软件后台任务的不断增加,在相同时刻只允许一个任务在后台执行,要实现多个后台任务的同时进行,添加一个任务研发需要开发很多功能,导致开发成本高,也可以使用开源分布式调度平台elastic-job中的Elastic-Job-Lite来实现多任务的定点执行,但是需要额外部署分布式协调组件zookeeper,使得ThinkDB的开发架构复杂,且维护成本高。基于上述缺陷,本专利技术实施例提供了一种分布式系统中的任务调度方法,主节点在接收任务后,可以将任务自动调度给工作节点列表中的一个工作节点。该方法能够简化软件开发架构,进一步降低了运维成本,很大程度上提高了开发效率。下面将参考附图并结合实施例来详细说明本申请。需要说明的是,下述法实施例的执行主体可以是分布式系统中的任务调度装置,该装置可以通过软件、硬件或者软硬件结合的方式实现成为终端设备的部分或者全部。下述方法实施例的执行主体以计算机设备为例来进行说明。图1为本专利技术实施例提供的任务调度方法的流程示意图,如图1所示,该方法包括:S101、主节点接收来自工作节点的刷新信息,刷新信息包括检测工作节点列表中是否有工作节点的信息。具体的,上述刷新信息可以包括刷新时间、服务IP、服务端口、服务名以及检测工作节点列表中是否有工作节点的信息,主节点可以接收来本文档来自技高网
...

【技术保护点】
1.一种分布式系统中的任务调度方法,其特征在于,包括:/n主节点接收来自工作节点的刷新信息,所述刷新信息包括检测工作节点列表中是否有工作节点的信息;/n所述主节点接收任务;/n所述主节点将所述任务调度给所述工作节点列表中的一个工作节点。/n

【技术特征摘要】
1.一种分布式系统中的任务调度方法,其特征在于,包括:
主节点接收来自工作节点的刷新信息,所述刷新信息包括检测工作节点列表中是否有工作节点的信息;
所述主节点接收任务;
所述主节点将所述任务调度给所述工作节点列表中的一个工作节点。


2.根据权利要求1所述的分布式系统中的任务调度方法,其特征在于,所述主节点检测所述工作节点列表中是否有工作节点的信息,还包括:
如果所述工作节点列表没有所述工作节点的信息,则在所述工作节点列表中添加所述工作节点的信息并记录刷新时间;
如果工作节点列表有所述工作节点的信息,则更新所述工作节点的刷新时间。


3.根据权利要求1所述的分布式系统中的任务调度方法,其特征在于,所述方法还包括:
所述主节点执行指定操作;
所述指定操作包括:
确定所述工作节点列表中的工作节点的刷新时间;
判断每个所述工作节点的刷新时间距离当前时间是否达到预设阈值;
若达到所述预设阈值,则在所述工作节点列表中删除所述工作节点。


4.根据权利要求1所述的分布式系统中的任务调度方法,其特征在于,所述主节点将所述任务调度给所述工作节点列表中的工作节点,包括:
当接收到任务请求时,所述主节点通过RPC开源框架GRPC将所述任务调度给所述工作节点列表中的工作节点。


5.根据权利要求1所述的分布式系统中的任务调度方法,其中主节点将所述任务调度给所述工作节点列表中的工作节点包括:所述主节点通过轮询的方式将所述任务调度给所述工作节点列表中的工作节点。

【专利技术属性】
技术研发人员:章爱国刘力周浩钟易程高欢斌段永辉陈小玲
申请(专利权)人:顺丰科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1