一种任务处理方法、装置及相关设备制造方法及图纸

技术编号:32211820 阅读:15 留言:0更新日期:2022-02-09 17:17
本申请实施例公开了一种任务处理方法、装置及相关设备,应用于分布式处理系统中的第一节点,在利用watcher机制接收到待处理任务的任务通知后,可以从etcd数据库中提取待处理任务到等待队列,待处理任务根据任务请求生成,之后利用任务处理函数对待处理任务进行处理,待处理函数根据待处理任务和分布式系统各种用于处理待处理任务的节点确定,在利用任务处理函数对待处理任务处理完成后,对etcd数据库中待处理任务的任务状态进行更新,这样可以利用etcd数据库对待处理任务的处理进度进行记录,并利用etcd数据库的watcher机制进行任务的相关通知,便于各个节点查询以及进行分布式处理,从而实现分布式系统中任务的稳定高效处理。理。理。

【技术实现步骤摘要】
一种任务处理方法、装置及相关设备


[0001]本专利技术涉及计算机
,特别是涉及一种任务处理方法、装置及相关设备。

技术介绍

[0002]分布式系统是多个处理机通过通信线路互联而构成的松散耦合的系统,其具有四个特点:(1)分布式系统由多台计算机组成,整个系统的功能分散在各个节点上实现;(2)分布式系统中的各个节点都包含自己的处理机和内存,各自具有独立的处理数据的功能,各个节点既能自制地进行工作,又能利用共享的通信线路传送信息和协调任务处理;(3)一个大的任务(Task)可以分为若干个子任务,分别在不同的主机上执行;(4)分布式系统中存在一个单一的、全局的进程通信机制,使得任何一个进程都能与其他进行通信。
[0003]对于分布式系统中任务处理,由于各个节点之间独立自治,若想实现任务在各个节点间的协调处理,需要提供集群消息通知和管理、任务管理机制等,同时需要考虑分布式系统崩溃后重启能够继续重做未完成的任务,需要将任务持久存储记录索引。

技术实现思路

[0004]为解决上述技术问题,本申请实施例提供一种任务处理方法,利用etcd数据库进行任务的记录,实现分布式系统中任务的稳定高效处理。其具体方案如下:
[0005]第一方面,本申请公开了一种任务处理方法,应用于分布式系统中的第一节点,所述方法包括:
[0006]在利用watcher机制接收到待处理任务的任务通知后,从etcd数据库中提取所述待处理任务到等待队列中;所述待处理任务根据任务请求生成;
[0007]将所述待处理任务从所述等待队列提取到处理中队列,利用任务处理函数对所述待处理任务进行处理;所述任务处理函数根据所述待处理任务和所述分布式系统中用于处理所述待处理任务的节点确定;
[0008]在对所述待处理任务处理完成后,将所述待处理任务移出所述处理中队列,并对etcd数据库中所述待处理任务的任务状态进行更新;所述待处理任务的任务状态以键值对的形式存储在etcd数据库中。
[0009]可选的,所述待处理任务包括同步任务,所述任务处理函数包括同步任务处理函数;所述第一节点为主节点,所述etcd数据库中所述待处理任务的任务状态包括所述待处理任务的同步任务状态和所述待处理任务的总任务状态,所述待处理任务的总任务状态体现所述待处理任务是否全部完成。
[0010]可选的,所述待处理任务包括同步任务和异步任务,所述任务处理函数包括同步任务处理函数和异步任务处理函数,所述待处理任务的任务状态至少包括所述待处理任务的异步任务状态中所述第一节点对应的子任务状态;所述利用任务处理函数对所述待处理任务进行处理,包括:
[0011]利用所述同步任务处理函数对所述同步任务进行处理;
[0012]在获取到同步任务处理完成的通知后,利用所述异步任务处理函数对所述异步任务进行处理;
[0013]所述对etcd数据库中所述待处理任务的任务状态进行修改,包括:
[0014]将所述待处理任务的异步任务状态中所述第一节点对应的子任务状态更新为已完成状态。
[0015]可选的,所述第一节点为所述分布式系统中的主节点,所述待处理任务的任务状态还包括所述待处理任务的同步任务状态,所述方法还包括:
[0016]在所述同步任务处理完成后,将所述etcd数据库中所述待处理任务的同步任务状态更新为已完成状态,以使所述分布式系统中各个节点通过watcher机制获取到同步任务处理完成的通知。
[0017]可选的,所述方法还包括:
[0018]确定所述待处理任务的异步任务状态中的各个节点对应的子任务状态均为已完成状态,将etcd数据库中所述待处理任务的总任务状态更新为已完成状态,所述待处理任务的总任务状态体现所述待处理任务是否全部完成。
[0019]可选的,所述方法还包括:
[0020]在所述分布式系统中的第二节点崩坏,或所述第一节点重启时,遍历etcd数据库中的任务列表,从所述任务列表中确定所述待处理任务,以对所述待处理任务进行处理。
[0021]可选的,所述第一节点的内存中具有所述待处理任务的任务内存结构,所述任务内存结构的成员包括所述待处理任务的异步任务状态和任务处理函数,所述异步任务状态的值表征所述待处理任务的异步任务是否完成;所述方法还包括:
[0022]在所述分布式系统中的第二节点崩坏时,若所述待处理任务在等待队列中,则更新所述任务处理函数,以利用更新的任务处理函数对所述待处理任务进行处理;所述更新的任务处理函数根据所述待处理任务和所述分布式系统中用于处理所述待处理任务的更新的节点确定,所述更新的节点不包括所述第二节点;
[0023]在所述分布式系统中的第二节点崩坏时,若所述待处理任务在处理中队列中,将所述待处理在任务内存结构中的异步任务状态置为空,同时为所述待处理任务生成新的任务内存结构,并将所述待处理任务置于等待队列中;更新所述任务处理函数,以利用更新的任务处理函数对所述待处理任务进行处理;
[0024]其中,所述新的内存结构中异步任务状态不为空,以便异步任务处理完成后根据所述新的任务内存结构中的异步任务状态的值更新etcd数据库中的异步任务状态;更新的任务处理函数根据所述待处理任务和所述分布式系统中用于处理所述待处理任务的更新的节点确定,所述更新的节点不包括所述第二节点。
[0025]第二方面,本申请公开了一种任务处理装置,应用于分布式系统中的第一节点,所述装置包括:
[0026]队列管理单元,用于在利用watcher机制接收到待处理任务的任务通知后,从etcd数据库中提取所述待处理任务到等待队列中;所述待处理任务根据任务请求生成;
[0027]任务处理单元,用于利用任务处理函数对所述待处理任务进行处理;所述任务处理函数根据所述待处理任务和所述分布式系统中用于处理所述待处理任务的节点确定;
[0028]状态更新单元,用于在利用所述任务处理函数对所述待处理任务处理完成后,对
etcd数据库中所述待处理任务的任务状态进行更新;所述待处理任务的任务状态以键值对的形式存储在etcd数据库中;
[0029]所述队列管理单元,还用于:在利用所述任务处理函数对所述待处理任务进行处理前,将所述待处理任务从所述等待队列提取到处理中队列;在利用所述任务处理函数对所述待处理任务处理完成后,将所述待处理任务移出所述处理中队列。
[0030]可选的,所述待处理任务包括同步任务,所述任务处理函数包括同步任务处理函数;所述第一节点为主节点,所述etcd数据库中所述待处理任务的任务状态包括所述待处理任务的同步任务状态和所述待处理任务的总任务状态,所述待处理任务的总任务状态体现所述待处理任务是否全部完成。
[0031]可选的,所述待处理任务包括同步任务和异步任务,所述任务处理函数包括同步任务处理函数和异步任务处理函数,所述待处理任务的任务状态至少包括所述待处理任务的异步任务状态中所述第一节点对应的子任务状态;所述任务处理单元,包括:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种任务处理方法,其特征在于,应用于分布式系统中的第一节点,所述方法包括:在利用watcher机制接收到待处理任务的任务通知后,从etcd数据库中提取所述待处理任务到等待队列中;所述待处理任务根据任务请求生成;将所述待处理任务从所述等待队列提取到处理中队列,利用任务处理函数对所述待处理任务进行处理;所述任务处理函数根据所述待处理任务和所述分布式系统中用于处理所述待处理任务的节点确定;在对所述待处理任务处理完成后,将所述待处理任务移出所述处理中队列,并对etcd数据库中所述待处理任务的任务状态进行更新;所述待处理任务的任务状态以键值对的形式存储在etcd数据库中。2.根据权利要求1所述的方法,其特征在于,所述待处理任务包括同步任务,所述任务处理函数包括同步任务处理函数;所述第一节点为主节点,所述etcd数据库中所述待处理任务的任务状态包括所述待处理任务的同步任务状态和所述待处理任务的总任务状态,所述待处理任务的总任务状态体现所述待处理任务是否全部完成。3.根据权利要求1所述的方法,其特征在于,所述待处理任务包括同步任务和异步任务,所述任务处理函数包括同步任务处理函数和异步任务处理函数,所述待处理任务的任务状态至少包括所述待处理任务的异步任务状态中所述第一节点对应的子任务状态;所述利用任务处理函数对所述待处理任务进行处理,包括:利用所述同步任务处理函数对所述同步任务进行处理;在获取到同步任务处理完成的通知后,利用所述异步任务处理函数对所述异步任务进行处理;所述对etcd数据库中所述待处理任务的任务状态进行修改,包括:将所述待处理任务的异步任务状态中所述第一节点对应的子任务状态更新为已完成状态。4.根据权利要求3所述的方法,其特征在于,所述第一节点为所述分布式系统中的主节点,所述待处理任务的任务状态还包括所述待处理任务的同步任务状态,所述方法还包括:在所述同步任务处理完成后,将所述etcd数据库中所述待处理任务的同步任务状态更新为已完成状态,以使所述分布式系统中各个节点通过watcher机制获取到同步任务处理完成的通知。5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:确定所述待处理任务的异步任务状态中的各个节点对应的子任务状态均为已完成状态,将etcd数据库中所述待处理任务的总任务状态更新为已完成状态,所述待处理任务的总任务状态体现所述待处理任务是否全部完成。6.根据权利要求1

4任意一项所述的方法,其特征在于,所述方法还包括:在所述分布式系统中的第二节点崩坏,或所述第一节点重启时,遍历etcd数据库中的任务列表,从所述任务列表中确定所述待处理任务,以对...

【专利技术属性】
技术研发人员:樊云龙
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1