基于python的分布式扫描器_一种基于python的大数据分布式任务处理装置的制作方法...

本发明涉及数据处理技术,具体是一种基于python的大数据分布式任务处理装置。

背景技术:

本发明提供一种分布式队列任务处理方案和装置,该方法可以提供分布式处理python任务,任务类型包括爬虫及其他处理任务。在现有基础上,按照插件模板编写新的任务处理插件即可分布式处理大量相同类型的任务。并且可以有效的控制不同worker的处理时效,处理并发数。亦可实时监控每一项任务的处理状态、进度和结果。

技术实现要素:

本发明的目的在于提供一种基于python的大数据分布式任务处理装置,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种基于python的大数据分布式任务处理装置,包括用户任务提交模块、任务信息格式化模块、分布式处理队列模块、任务处理引擎和子任务处理单元,所述用户任务提交模块连接任务信息格式化模块,任务信息格式化模块还连接分布式处理队列模块,分布式处理队列模块还连接任务处理引擎,任务处理引擎还连接子任务处理单元。

作为本发明的进一步技术方案:所述子任务处理单元包括判断模块、插件加载模块、处理模块和结果上传模块,判断模块连接插件加载模块,插件加载模块还连接处理模块,处理模块还连接结果上传模块。

与现有技术相比,本发明的有益效果是:本发明可以提供分布式处理python任务,任务类型包括爬虫及其他处理任务。在现有基础上,按照插件模板编写新的任务处理插件即可分布式处理大量相同类型的任务。并且可以有效的控制不同worker的处理时效,处理并发数。亦可实时监控每一项任务的处理状态、进度和结果。

附图说明

图1为本发明的整体方框图。

图2为本子任务处理单元的方框图。

图3为本发明的工作流程图。

图中:1-装饰边条、2-触摸屏、3-横向型材边框、4-桌子腿、5-纵向型材边框、6-万向轮、7-塑胶边角。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-3,一种基于python的大数据分布式任务处理装置,包括用户任务提交模块、任务信息格式化模块、分布式处理队列模块、任务处理引擎和子任务处理单元,所述用户任务提交模块连接任务信息格式化模块,任务信息格式化模块还连接分布式处理队列模块,分布式处理队列模块还连接任务处理引擎,任务处理引擎还连接子任务处理单元。

子任务处理单元包括判断模块、插件加载模块、处理模块和结果上传模块,判断模块连接插件加载模块,插件加载模块还连接处理模块,处理模块还连接结果上传模块。

本发明的工作原理是:本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本申请可用于众多通用或专用的计算装置环境或配置中。例如 :个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置、包括以上任何装置或设备的分布式计算环境等等。

应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

参考图示,示出了本申请一种基于redis队列的大数据分布式处理实例流程与模块图。

首先任务提交模块响应用户输入的提交信息,按照信息及对应的插件名称生成相应的任务内容。

在上一步中,用户可以在交互式界面选择任务,并按照提示表单提交任务信息及文件等。假设用户选择新任务为:新建一个文本处理任务,则用户需要选择插件为TEXTPROCESSOR,然后根据表单信息选择上传的文件。

在实际中,任务信息格式化模块需要判断用户的提交的信息是否合规,例如是否为任务需要处理的内容、内容是否编码统一、 内容中是否含有恶意拼接的内容,是否为正常使用人员提交。

接着分布式任务队列模块会将用户提交的信息会转化为json的格式以键值对(KEY-VALUE)的形式保存进中央数据队列中。

此时分布式任务队列模块将任务状态标记为未分发。

当任务处理引擎启动之后,会开启一个子任务处理单元,处理单元启动以后会对中央任务队列进行任务轮询,过滤出未分发的任务。

当当前处理单元成功地将任务标记为已分发时,该处理单元选择接受此任务。

当当前处理单元接受此任务之后,再次判断该任务的合法性及任务数据的有效性。判断任务有效,即是否存在有效的处理插件、是否为有效时间内的非重复任务。

当任务有效时,处理单元选择启动一个新的线程根据任务插件名称寻找插件文件,接着加载插件。此时会新建一个Job对象,标记Job的处理插件、新建时间、任务来源等,然后标记Job对象状态为waiting,插入数据库中。此时将任务状态标记为waiting。

接着读取任务的json内容。实例化插件对象然后加载任务数据,此时将Job状态标记为running,任务状态标记为running并更新。接着使用插件对象处理任务数据。

当任务和Job标记为running以后,用户会在交互式界面看到任务的状态、当前正在运行的子任务名称。

当任务完成后,将任务状态和Job状态标记为success,并且根据起始任务信息选择是否将结果返回中央任务队列中再次分发处理。

当任务处理超时或者失败时,将Job状态标记为error,并且使用traceback模块记录详细的出错调用栈关系。

将任务及Job保存进数据库中,便于留存查询。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值