数据任务处理方法和系统技术方案

技术编号:20285160 阅读:23 留言:0更新日期:2019-02-10 17:47
本公开提供了一种数据任务处理方法,包括:将待处理任务分成至少一个子任务,所述至少一个子任务存放于子任务队列中;从所述子任务队列中获取相应的子任务进行处理,并存储所述相应的子任务的处理结果;在所述子任务的处理结果满足预设条件时,停止处理所述待处理任务。

Data Task Processing Method and System

The present disclosure provides a data task processing method, which includes: dividing the task to be processed into at least one sub-task, storing at least one sub-task in the sub-task queue; obtaining corresponding sub-task from the sub-task queue for processing, and storing the processing results of the corresponding sub-task; and stopping when the processing results of the sub-task satisfy the preset conditions. Handle the tasks to be processed.

【技术实现步骤摘要】
数据任务处理方法和系统
本公开涉及计算机
,更具体地,涉及一种数据任务处理方法和一种数据任务处理系统。
技术介绍
随着计算机技术的快速发展,需要计算机执行的任务越来越大。在对数据进行处理时,由于应用场景和需要实现的处理目标越来越复杂,常常面临单线程执行调度时间开销大,资源利用率不高等问题。现有技术中,通常将大任务拆分成多个子任务,交给多个子线程去处理,或者将大任务待处理的数据进行物理拆分,交给多台服务器并行处理,然后对结果合并。在实现本公开构思的过程中,专利技术人发现现有技术中至少存在如下问题,即,在现有技术中无法实时监控子任务的处理结果,只能等所有子任务执行完成后才能知道整个任务的结果,无法中途做出响应,待整个任务执行完,发现不是预期的结果,需要重做,资源利用率较低,并且时效性也不高。
技术实现思路
有鉴于此,本公开提供了一种可以实时监听任务调度的中间执行状态的数据任务处理方法和系统。本公开的一个方面提供了一种数据任务处理方法,包括:将待处理任务分成至少一个子任务,所述至少一个子任务存放于子任务队列中,从所述子任务队列中获取相应的子任务进行处理,并存储所述相应的子任务的处理结果,以及在所述子任务的处理结果满足预设条件时,停止处理所述待处理任务。根据本公开的实施例,上述子任务以数据块的形式存放于所述子任务队列中,所述数据块包括所述子任务数据以及所述数据块的状态信息。根据本公开的实施例,上述子任务队列包括阻塞队列。根据本公开的实施例,上述从所述子任务队列中获取相应的子任务进行处理,包括:通过线程池中的多个工作线程从所述子任务队列中获取多个相应的子任务进行处理,其中,每个所述工作线程一次对一个所述子任务进行处理。根据本公开的实施例,上述从所述子任务队列中获取相应的子任务进行处理,还包括:在获取到所述子任务后,将所述子任务从所述子任务队列中删除。根据本公开的实施例,上述存储所述子任务的处理结果包括:将所述子任务的处理结果存储在结果队列中,所述结果队列包括每个所述子任务的处理状态信息。根据本公开的实施例,上述在所述子任务的处理结果满足预设条件时,停止处理所述待处理任务,包括:在所述子任务的处理结果为失败,并且失败次数大于等于预设阈值时,停止处理所述待处理任务。根据本公开的实施例,上述方法还包括:在所述子任务的处理结果为失败,并且失败次数小于预设阈值时,将所述子任务重新存放于子任务队列中。本公开的另一个方面提供了一种数据任务处理系统,包括:任务拆分模块用于将待处理任务分成至少一个子任务,所述至少一个子任务存放于子任务队列中,子任务处理模块用于从所述子任务队列中获取相应的子任务进行处理,并存储所述相应的子任务的处理结果,以及停止处理模块用于在所述子任务的处理结果满足预设条件时,停止处理所述待处理任务。根据本公开的实施例,上述子任务以数据块的形式存放于所述子任务队列中,所述数据块包括所述子任务数据以及所述数据块的状态信息。根据本公开的实施例,上述子任务队列包括阻塞队列。根据本公开的实施例,上述从所述子任务队列中获取相应的子任务进行处理,包括:通过线程池中的多个工作线程从所述子任务队列中获取多个相应的子任务进行处理,其中,每个所述工作线程一次对一个所述子任务进行处理。根据本公开的实施例,上述子任务处理模块还用于,在获取到所述子任务后,将所述子任务从所述子任务队列中删除。根据本公开的实施例,上述存储所述子任务的处理结果包括:将所述子任务的处理结果存储在结果队列中,所述结果队列包括每个所述子任务的处理状态信息。根据本公开的实施例,上述在所述子任务的处理结果满足预设条件时,停止处理所述待处理任务,包括:在所述子任务的处理结果为失败,并且失败次数大于等于预设阈值时,停止处理所述待处理任务。根据本公开的实施例,上述系统还包括:子任务调度模块用于在所述子任务的处理结果为失败,并且失败次数小于预设阈值时,将所述子任务重新存放于子任务队列中。本公开的另一方面提供了一种数据任务处理系统,包括:一个或多个处理器,存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上所述的方法。本公开的另一方面提供了一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现如上所述的方法。本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。根据本公开的实施例,可以至少部分地避免在任务执行过程中无法实时监控子任务的处理结果,只能等所有子任务执行完成后才能知道整个任务的结果的问题,并因此可以实现实时监听任务调度的中间执行状态,并且反馈子任务的执行结果,根据子任务的处理状态对整体任务作出反馈决策,有效地提高了时效性和资源利用率。附图说明通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:图1示意性示出了根据本公开实施例的可以应用数据任务处理方法的示例性系统架构;图2示意性示出了根据本公开实施例的数据任务处理方法的流程图;图3示意性示出了根据本公开实施例的数据任务处理系统的框图;图4示意性示出了根据本公开实施例的适于实现数据任务处理的计算机系统的方框图。具体实施方式以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。本公开的实施例提供了一种数据任务处理方法和能够应用该方法的数据任务处理系统。该方法包括:将待处理任务分成至少一个子任务,其中,至少一个子任务存放于子任务队列中。从子任务队列中获取相应的子任务进行处理,并存储该些子任务的处理结果。在子任务的处理结果满足预设条件时,停止处理待处理任务。图1示意性示出了根据本公开实施例的可以应用数据任务处理方法的示例性系统架构100。如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103可以是具有显示屏并且支持数据传输和处理的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、本文档来自技高网...

【技术保护点】
1.一种数据任务处理方法,包括:将待处理任务分成至少一个子任务,所述至少一个子任务存放于子任务队列中;从所述子任务队列中获取相应的子任务进行处理,并存储所述相应的子任务的处理结果;在所述子任务的处理结果满足预设条件时,停止处理所述待处理任务。

【技术特征摘要】
1.一种数据任务处理方法,包括:将待处理任务分成至少一个子任务,所述至少一个子任务存放于子任务队列中;从所述子任务队列中获取相应的子任务进行处理,并存储所述相应的子任务的处理结果;在所述子任务的处理结果满足预设条件时,停止处理所述待处理任务。2.根据权利要求1所述的方法,其中,所述子任务以数据块的形式存放于所述子任务队列中,所述数据块包括所述子任务数据以及所述数据块的状态信息。3.根据权利要求1所述的方法,其中,所述子任务队列包括阻塞队列。4.根据权利要求1所述的方法,其中,所述从所述子任务队列中获取相应的子任务进行处理,包括:通过线程池中的多个工作线程从所述子任务队列中获取多个相应的子任务进行处理,其中,每个所述工作线程一次对一个所述子任务进行处理。5.根据权利要求1所述的方法,其中,所述从所述子任务队列中获取相应的子任务进行处理,还包括:在获取到所述子任务后,将所述子任务从所述子任务队列中删除。6.根据权利要求1所述的方法,其中,所述存储所述子任务的处理结果包括:将所述子任务的处理结果存储在结果队列中,所述结果队列包括每个所述子任务的处理状态信息。7.根据权利要求1所述的方法,其中,所述在所述子任务的处理结果满足预设条件时,停止处理所述待处理任务,包括:在所述子任务的处理结果为失败,并且失败次数大于等于预设阈值时,停止处理所述待处理任务。8.根据权利要求7所述的方法,还包括:在所述子任务的处理结果为失败,并且失败次数小于预设阈值时,将所述子任务重新存放于子任务队列中。9.一种数据任务处理系统,包括:任务拆分模块,将待处理任务分成至少一个子任务,所述至少一个子任务存放于子任务队列中;子任务处理模块,从所述子任务队列中获取相应的子任务进行处理,并存储所...

【专利技术属性】
技术研发人员:张锋陈杰
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1