CN117149381A - 一种分布式任务管理方法、系统、计算设备及存储介质 - Google Patents

一种分布式任务管理方法、系统、计算设备及存储介质 Download PDF

Info

Publication number
CN117149381A
CN117149381A CN202311038709.6A CN202311038709A CN117149381A CN 117149381 A CN117149381 A CN 117149381A CN 202311038709 A CN202311038709 A CN 202311038709A CN 117149381 A CN117149381 A CN 117149381A
Authority
CN
China
Prior art keywords
task
node
distributed
list
tasks
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
CN202311038709.6A
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 Shen Xue Supply Chain Management Co ltd
Original Assignee
Shanghai Shen Xue Supply Chain Management 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 Shen Xue Supply Chain Management Co ltd filed Critical Shanghai Shen Xue Supply Chain Management Co ltd
Priority to CN202311038709.6A priority Critical patent/CN117149381A/zh
Publication of CN117149381A publication Critical patent/CN117149381A/zh
Pending legal-status Critical Current

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/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种分布式任务管理方法,包括:将任务中心的节点存储在zookeeper集群的任务节点列表中;选举出任务节点列表中的主节点;主节点监听任务类型列表和任务节点列表,根据任务类型和任务节点变化将任务分配给工作节点;工作节点监听并执行本机被分配的任务,记录任务状态和任务执行结果。本方案能够实现海量任务分布式并行执行,提高任务执行的效率。

Description

一种分布式任务管理方法、系统、计算设备及存储介质
技术领域
本发明涉及物流管理技术领域,具体涉及一种分布式任务管理方法、系统、计算设备及存储介质。
背景技术
随着电子商务的迅猛发展和订单任务的不断激增,物流业在经济社会中的地位愈来愈重要。传统的物流任务调度主要是针对单仓库环境,这种集中式任务调度无法满足集群调度的高效性。
例如,在数据导出任务中常规的数据导出方案是:用户在前端发起数据导出请求,由后端对数据进行查询和处理生成导出文件流,返回给前端进行下载。这种处理流程的缺点是,当数据量过大时,用户等待时间长无法进行其他操作,有可能在接口响应超时的情况下导致文件导出失败。又例如,当用户在页面发起异步任务时,任务是否完成不可感知,且如果服务器重启或崩溃,未执行完的任务会丢失。
发明内容
鉴于上述问题,本发明提出一种克服上述问题或者至少部分地解决上述问题的一种分布式任务管理方法、系统、计算设备及存储介质,基于zookeeper集群对任务调度中心进行分布式任务分配和管理,能够按照分片执行任务,避免多个节点重复执行相同的任务;通过对任务状态进行实时更新可以实现任务状态可视化;根据任务状态和节点变化重新分配任务,即使机器重启或宕机时也不会导致任务的丢失,能够提高分布式任务调度的高并发和高可用性。
根据本发明的第一方面,提供一种分布式任务管理方法,包括:将任务中心的节点存储在zookeeper集群的任务节点列表中;选举出任务节点列表中的主节点;主节点监听任务类型列表和任务节点列表,根据任务类型和任务节点变化将任务分配给工作节点;工作节点监听并执行本机被分配的任务,记录任务状态和任务执行结果。
可选地,在本发明提供的分布式任务管理方法中,主节点监听任务类型列表和任务节点列表的变化;当任务类型变化时,根据任务类型设置的分片数,将任务平均分配到各任务中心机器上,并记录每个机器分配到的任务类型和任务分片;当任务节点变化时,重新竞选选举出主节点进行任务分配,记录每个任务被执行的机器。
可选地,在本发明提供的分布式任务管理方法中,工作节点监听本机路径下的任务节点变化,根据被分配的任务启动对应的任务执行器;根据分配的任务类型和任务分片,从数据库中获取与任务类型和任务分片匹配的待执行任务。
可选地,在本发明提供的分布式任务管理方法中,每个工作节点自定义限流策略;判断待执行任务是否被限流,如果被限流则不执行,如果未被限流则修改任务状态为执行中,并执行任务;根据任务执行结果将任务状态记录为执行成功或执行失败。
可选地,在本发明提供的分布式任务管理方法中,任务类型包括新增、修改、删除、导入、导出等。
可选地,在本发明提供的分布式任务管理方法中,将投票信息发送给任务中心中的所有节点,投票信息包括服务器id、最新事务id、逻辑时钟;最新事务id越大的优先被选举为主节点,如果最新事务id相同则服务器id大的优先选举为主节点;每次投票后服务器统计投票信息,如果过半数机器收到相同的投票,则选举出主节点。
可选地,在本发明提供的分布式任务管理方法中,将任务执行状态可视化呈现在用户界面;对于未执行完成或未执行成功的任务重新分配。
根据本发明的第二方面,提供了一种分布式任务管理系统,包括:存储模块、选举模块、任务分配模块和任务执行模块。
其中,存储模块,用于将任务中心的节点存储在zookeeper集群的任务节点列表中;选举模块,用于选举出任务节点列表中的主节点;任务分配模块,用于使主节点监听任务类型列表和任务节点列表,根据任务类型和任务节点变化将任务分配给工作节点;任务执行模块,用于使工作节点监听并执行本机被分配的任务,记录任务状态和任务执行结果。
根据本发明的第三方面,提供一种计算设备,包括:至少一个处理器;和存储有程序指令的存储器,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行上述分布式任务管理方法的指令。
根据本发明的第四方面,提供一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行上述的分布式任务管理方法。
根据本发明的方案,基于zookeeper集群对任务调度中心进行分布式任务分配和管理,能够按照分片执行任务,避免多个节点重复执行相同的任务;通过对任务状态进行实时更新可以实现任务状态可视化;根据任务状态和节点变化重新分配任务,即使机器重启或宕机时也不会导致任务的丢失,能够提高分布式任务调度的高并发和高可用性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的计算设备100的结构框图;
图2示出了根据本发明一个实施例的分布式任务管理方法200的流程示意图;
图3示出了根据本发明一个实施例的任务中心和zookeeper集群的监听关系图;
图4示出了根据本发明一个实施例的主节点监听流程示意图;
图5示出了根据本发明一个实施例的工作节点启动和监听流程示意图;
图6示出了根据本发明一个实施例的分布式任务管理系统600的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
集群环境中的集中式任务调度会导致任务重复执行,当任务数据量较大时等待时间较长,可能会因为超时响应导致任务失败。在处理异步任务时,任务是否执行不可感知,当服务器重启时会导致未执行完的任务丢失。
为了提高集群环境中任务分配和执行的可靠性和效率,本方案提出了一种分布式任务管理方法,基于zookeeper集群对任务中心集群进行管理和任务分配,能够大大提高任务处理量,任务执行状态可感知,即使服务器重启也不会导致未执行完成的任务丢失,能够提高分布式任务处理的效率和可靠性。
图1示出了根据本发明一个实施例的计算设备100的结构图。如图1所示,在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
取决于期望的配置,处理器104可以是任何类型的处理器,包括但不限于:微处理器(µP)、微控制器(µC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。计算设备中的物理内存通常指的是易失性存储器RAM,磁盘中的数据需要加载至物理内存中才能够被处理器104读取。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。
在一些实施方式中,应用122可以布置为在操作系统上由一个或多个处理器104利用程序数据124执行指令。操作系统120例如可以是Linux、Windows等,其包括用于处理基本系统服务以及执行依赖于硬件的任务的程序指令。应用122包括用于实现各种用户期望的功能的程序指令,应用122例如可以是浏览器、即时通讯软件、软件开发工具(例如集成开发环境IDE、编译器等)等,但不限于此。当应用122被安装到计算设备100中时,可以向操作系统120添加驱动模块。
在计算设备100启动运行时,处理器104会从存储器106中读取操作系统120的程序指令并执行。应用122运行在操作系统120之上,利用操作系统120以及底层硬件提供的接口来实现各种用户期望的功能。当用户启动应用122时,应用122会加载至存储器106中,处理器104从存储器106中读取并执行应用122的程序指令。
计算设备100还包括储存设备132,储存设备132包括可移除储存器136和不可移除储存器138,可移除储存器136和不可移除储存器138均与储存接口总线134连接。
计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。在根据本发明的计算设备100中,应用122包括用于执行本发明的分布式任务管理方法200的指令。
图2示出了根据本发明一个实施例的分布式任务管理方法200的流程示意图。如图2所示,该方法200始于步骤S210,将任务中心节点存储在zookeeper集群的任务节点列表中。
其中,zookeeper是一个分布式文件存储系统,以文件目录树的方式存储数据,数据都会加载到内存,能够增加、删除、修改数据,可以为集群提供快速的响应服务。
zookeeper集群中的节点为数据节点,每个数据节点node上会保存数据内容,可以在zookeeper集群的任务节点列表/NODE_LIST下,存放任务中心集群所有任务节点。
随后执行步骤S220,选举出任务节点列表中的主节点。
主节点leader是整个zookeeper集群的核心,负责响应所有对zookeeper状态变更的请求,将每个状态变更请求进行排序和编号,以保证整个集群内部消息处理的先入先出队列。
基于zookeeper上创建的节点可以对这些节点绑定监听事件,例如,可以监听节点数据变更、节点删除等事件。如果客户端发送任务请求到其他从节点上,这个任务请求也会被从节点转发至主节点处理。
各从节点可以参与集群中对主节点的选举投票,需要半数以上的从节点通过才会确定选举出的主节点。
在选举过程中,需要将投票信息发送给任务中心集群中的所有服务器节点,投票信息可以包含如下内容:
sid(服务器ID):在同一集群中,每一台服务器都有自己的myid,并且该id不能重复。该id编号越大,在选举算法中,该服务器的权重就越大。
zxid(最新事务id):初始值为0,每一个服务器值发生变化,该值会递增。该值越大,说明该服务器的数据越新,在选举算法中数据越新,其权重就越大。
epoch(逻辑时钟):也叫投票次数,从0开始递增。同一轮投票过程中,各个机器的逻辑时钟值是相同的。每投完一次票,该值就会增加,然后与接收到的其他服务器返回的投票信息中的数据相对比。以此来判断其他机器的投票信息是否是最新的。
当系统启动或者leader崩溃后,就会开始leader的选举。zxid越大,表示数据最新,会被优先选举成新的leader;如果zxid都一样,此时选择myid最大的节点成为新的leader。
根据默认算法统计投票;每次投票后,服务器统计投票信息,如果有过半机器接收到相同的投票,那么leader产生,如果否,那么进行下一轮投票。一旦确定了Leader,server会更新自己的状态为Following或者是Leading,选举结束。
接着执行步骤S230,主节点监听任务类型列表和任务节点列表,根据任务类型和任务节点变化将任务分配给工作节点。
由选举出的主节点管理任务类型列表,监听任务类型变动。根据本发明的一个实施例,主节点负责监听任务类型列表/TASK_LIST路径下任务类型的变化,例如,新增、修改、删除、导入、导出任务类型。
图3示出了根据本发明一个实施例的任务中心和zookeeper集群的监听关系图。如图3所示,主节点通过监听zookeeper集群中的任务中心节点列表/NODE_LIST、任务类型列表/TASK_LIST和/SCHEDULED/TASK_LIST/${任务类型}/${任务分片},分别监听任务中心节点变化和任务类型变化,并根据任务或节点的变化重新分配任务类型给节点。
图4示出了根据本发明一个实施例的主节点监听流程示意图。如图4所示,当系统启动或节点变化时进行主节点竞选,选举出的主节点监听任务中心节点列表/NODE_LIST、任务类型列表/TASK_LIST。
如果监听到任务类型变化,则清除多余任务,根据任务类型设置的分片数,按照分片数将任务平均分配到各个任务中心机器节点上。如果监听到任务节点变化,则重新按照任务分片分配任务。记录每个工作节点被分配的任务类型和任务分片,并记录每个任务的执行工作节点。
例如,在SCHEDULED/NODE_LIST/${机器IP}/${任务类型}路径下,记录每个机器分配到的任务类型,以及任务中的哪些分片。并且,会在/SCHEDULED/TASK_LIST/${任务类型}/${分片编号}路径下,记录每个任务类型的分片是在哪台机器节点上执行的。
最后执行步骤S240,工作节点监听并执行本机被分配的任务,记录任务状态和任务执行结果。
所有节点都会监听SCHEDULED/NODE_LIST/${本机IP}路径下的任务节点变化,以机器ip做分割。任务中心的每个节点都只关心分配给自己的任务类型以及任务分片。各工作节点,即从节点,通过监听SCHEDULED/NODE_LIST/${任务中心节点IP},监听主节点的任务分配。
图5示出了根据本发明一个实施例的工作节点启动和监听流程示意图。如图5所示,工作节点通过监听本机IP被分配的任务SCHEDULED/NODE_LIST/${本机IP},启动对应的任务执行器。根据分配的任务类型和任务分片,从数据库中获取待执行任务;判断待执行任务是否被限流,如果被限流则不执行,如果未被限流则修改任务状态为执行中,并执行任务。
各工作节点根据分配给自己的任务类型和任务分片,去数据库中获取对应类型且分片符合的任务,并执行任务逻辑。在任务执行过程中,任务状态从待执行改为执行中,并根据执行结果改为执行成功和执行失败。
用户可以在页面上查看每个任务的执行状态,如果是导出任务,则可以在页面上下载导出文件。用户在页面上看到自己发起的任务执行状态,可以感知到任务是否执行完成。
图6示出了根据本发明一个实施例的分布式任务管理系统600的结构示意图。如图6所示,该系统600包括存储模块610、选举模块620、任务分配模块630和任务执行模块640。
其中,存储模块610可以将任务中心的节点存储在zookeeper集群的任务节点列表中。
本方案使用zookeeper对集群任务节点进行管理,在分布式环境下,每个任务节点的状态变化可被实时监控,能够实现节点负载均衡。
选举模块620可以选举出任务节点列表中的主节点。对于主节点的选举方案为本方案技术领域常规操作,在此不再赘述。当系统启动或者leader崩溃时,集群可以自动选举主节点重新分配任务,保证任务调度的正常执行。
任务分配模块630可以使主节点监听任务类型列表和任务节点列表,根据任务类型和任务节点变化将任务分配给工作节点。
主节点在对任务按照分片进行分配后,可实时记录任务分配到那些机器节点,记录任务被哪些机器执行。当监听到节点变化时,如机器故障或重启时,则重新进行任务分配,可以避免未执行完成的任务的丢失。
任务执行模块640可以使工作节点监听并执行本机被分配的任务,记录任务状态和任务执行结果。
工作节点在执行任务的过程中可以对任务状态进行实时更新,例如,将待执行任务改为执行中,在重启前将执行中的任务改为待执行,根据任务执行结果将任务状态改为执行成功或执行失败等。即使机器重启也会导致未执行完成的任务的丢失。用户可以在页面上看到自己发起的任务的执行状态,感知到任务是否执行完成。
通过本发明提供的分布式任务管理方案,将用户应用逻辑封装成一个个任务,将任务节点存储至zookeeper集群中进行调度配置,可以提供精准的周期性调度和任务分配,支持海量任务分布式并行执行,即使任一机器节点宕机仍能保持调度任务持续可用,可助力物流企业可视化的进行任务管理和运维。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (10)

1.一种分布式任务管理方法,其特征在于,包括:
将任务中心的节点存储在zookeeper集群的任务节点列表中;
选举出所述任务节点列表中的主节点;
主节点监听任务类型列表和所述任务节点列表,根据任务类型和任务节点变化将任务分配给工作节点;
工作节点监听并执行本机被分配的任务,记录任务状态和任务执行结果。
2.根据权利要求1所述的分布式任务管理方法,其特征在于,所述主节点监听任务类型列表和所述任务节点列表,根据任务类型和任务节点变化将任务分配给工作节点的步骤包括:
主节点监听任务类型列表和任务节点列表的变化;
当任务类型变化时,根据任务类型设置的分片数,将任务平均分配到各任务中心机器上,并记录每个机器分配到的任务类型和任务分片;
当任务节点变化时,重新竞选选举出主节点进行任务分配,记录每个任务被执行的机器。
3.根据权利要求2所述的分布式任务管理方法,其特征在于,所述工作节点监听并执行本机被分配的任务,记录任务状态和任务执行结果的步骤包括:
工作节点监听本机路径下的任务节点变化,根据被分配的任务启动对应的任务执行器;
根据分配的任务类型和任务分片,从数据库中获取与任务类型和任务分片匹配的待执行任务。
4.根据权利要求3所述的分布式任务管理方法,其特征在于,所述工作节点监听并执行本机被分配的任务,记录任务状态和任务执行结果的步骤还包括:
每个工作节点自定义限流策略;
判断待执行任务是否被限流,如果被限流则不执行,如果未被限流则修改任务状态为执行中,并执行任务;
根据任务执行结果将任务状态记录为执行成功或执行失败。
5.根据权利要求1-4任一项中所述的分布式任务管理方法,其特征在于,所述任务类型包括新增、修改、删除、导入、导出。
6.根据权利要求1所述的分布式任务管理方法,其特征在于,所述选举出所述任务节点列表中的主节点的步骤包括:
将投票信息发送给任务中心中的所有节点,所述投票信息包括服务器id、最新事务id、逻辑时钟;
最新事务id越大的优先被选举为主节点,如果最新事务id相同则服务器id大的优先选举为主节点;
每次投票后服务器统计投票信息,如果过半数机器收到相同的投票,则选举出主节点。
7.根据权利要求1所述的分布式任务管理方法,其特征在于,所述方法还包括:
将任务执行状态可视化呈现在用户界面;
对于未执行完成或未执行成功的任务重新分配。
8.一种分布式任务管理系统,其特征在于,包括:
存储模块,用于将任务中心的节点存储在zookeeper集群的任务节点列表中;
选举模块,用于选举出所述任务节点列表中的主节点;
任务分配模块,用于使主节点监听任务类型列表和任务节点列表,根据任务类型和任务节点变化将任务分配给工作节点;
任务执行模块,用于使工作节点监听并执行本机被分配的任务,记录任务状态和任务执行结果。
9.一种计算设备,包括:
至少一个处理器;和存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-7中任一项所述的分布式任务管理方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7任意一项中所述的分布式任务管理方法。
CN202311038709.6A 2023-08-17 2023-08-17 一种分布式任务管理方法、系统、计算设备及存储介质 Pending CN117149381A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311038709.6A CN117149381A (zh) 2023-08-17 2023-08-17 一种分布式任务管理方法、系统、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311038709.6A CN117149381A (zh) 2023-08-17 2023-08-17 一种分布式任务管理方法、系统、计算设备及存储介质

Publications (1)

Publication Number Publication Date
CN117149381A true CN117149381A (zh) 2023-12-01

Family

ID=88883455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311038709.6A Pending CN117149381A (zh) 2023-08-17 2023-08-17 一种分布式任务管理方法、系统、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN117149381A (zh)

Similar Documents

Publication Publication Date Title
US11425194B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
EP2851799B1 (en) Fault tolerant batch processing
US8417991B2 (en) Mitigating reduction in availability level during maintenance of nodes in a cluster
CN107391629B (zh) 集群间数据迁移方法、系统、服务器及计算机存储介质
US8321558B1 (en) Dynamically monitoring and modifying distributed execution of programs
US20160098292A1 (en) Job scheduling using expected server performance information
JP2014123365A (ja) MapReduceフレームワークにおけるデータ処理の最適化のためのデバイスおよび方法
CN110806933B (zh) 一种批量任务处理方法、装置、设备和存储介质
KR20140122240A (ko) 확장 가능한 환경에서의 파티션 관리 기법
US11182217B2 (en) Multilayered resource scheduling
CN109634989B (zh) 一种hive任务执行引擎选择方法和系统
WO2020215752A1 (zh) 图计算方法及装置
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
CN112445598A (zh) 一种基于quartz的任务调度方法、装置、电子设备以及介质
CN108696559B (zh) 流处理方法及装置
EP2828761A1 (en) A method and system for distributed computing of jobs
CN117149381A (zh) 一种分布式任务管理方法、系统、计算设备及存储介质
CN115617480A (zh) 一种任务调度方法、装置、系统及存储介质
US20210303339A1 (en) Data backup method, electronic device and computer program product
CN114564281A (zh) 容器调度方法、装置、设备及存储介质
AU2014274491B2 (en) Fault tolerant batch processing
CN116107747A (zh) 一种任务处理方法、装置、设备及介质
CN115269150A (zh) 用于调度作业的方法
CN115269151A (zh) 用于调度作业的方法
CN116841649A (zh) 一种基于flink on yarn的热重启方法及装置

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