CN105653365A - 任务处理方法及装置 - Google Patents
任务处理方法及装置 Download PDFInfo
- Publication number
- CN105653365A CN105653365A CN201610094434.1A CN201610094434A CN105653365A CN 105653365 A CN105653365 A CN 105653365A CN 201610094434 A CN201610094434 A CN 201610094434A CN 105653365 A CN105653365 A CN 105653365A
- Authority
- CN
- China
- Prior art keywords
- task
- running space
- chain
- environment
- dispatching center
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种任务处理方法及装置。该方法包括:步骤1,任务调度中心依次获取任务链中的任务,并根据任务的任务类型,将任务分发到对应类型的任务运行空间中;步骤2,任务运行空间通过任务线程对任务调度中心分发的任务进行处理,将处理后的任务执行结果返回到任务调度中心,执行步骤1,其中,在任务链已执行完的情况下,任务执行结果为空,在任务链未执行完的情况下,任务执行结果为任务链中当前任务的下一个任务。借助于本发明的技术方案,避免了不同类别或特点任务之间的相互影响、以及阻塞等待导致的线程资源消耗。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种任务处理方法及装置。
背景技术
不论Web服务或者网络服务,都有会面临一个相同的问题,就是需要有高性能的业务并行处理能力,即系统可以支持同时处理多笔业务或多个业务请求,且对于单笔业务处理速度还需要足够的快。使用线程池即可解决该需求,图1是现有技术中线程池进行业务处理的示意图,如图1所示,从系统服务入口收到的业务请求直接放入业务处理线程池,业务处理线程池随机分配一个空闲的线程对该业务进行处理,处理完成后,线程被释放,等待被重新分配。
在现有技术中,大部分服务均使用线程池进行业务并行处理,但使用线程池会存在以下问题:
问题1,在线程分配时,业务无差别,某些耗时业务可能导致整个线程池线程耗尽,影响到其他简单业务的处理;
问题2,对与互斥资源(例如内存Map表,文件操作等)的使用必须使用锁等机制,很多线程会处于阻塞等待资源状态,也可能导致整个线程池线程耗尽。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的任务处理方法及装置。
本发明提供一种任务处理方法,包括:
步骤1,任务调度中心依次获取任务链中的任务,并根据任务的任务类型,将任务分发到对应类型的任务运行空间中;
步骤2,任务运行空间通过任务线程对任务调度中心分发的任务进行处理,将处理后的任务执行结果返回到任务调度中心,返回步骤1,其中,在任务链已执行完的情况下,任务执行结果为空,在任务链未执行完的情况下,任务执行结果为任务链中当前任务的下一个任务。
本发明还提供了一种任务处理装置,包括:
任务调度中心,用于依次获取任务链中的任务,并根据任务的任务类型,将任务分发到对应类型的任务运行空间中;
任务运行空间,用于通过任务线程对任务调度中心分发的任务进行处理,将处理后的任务执行结果返回到任务调度中心,并调用任务调度中心,其中,在任务链已执行完的情况下,任务执行结果为空,在任务链未执行完的情况下,任务执行结果为任务链中当前任务的下一个任务。
本发明有益效果如下:
通过将业务设计抽象为串行的任务链,每个任务均拥有独立的任务运行空间,避免了不同类别或特点任务之间的相互影响;本发明实施例对互斥资源赋予独立的运行能力,来取代锁等机制,避免了阻塞等待导致的线程资源消耗。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是现有技术中线程池进行业务处理的示意图;
图2是本发明实施例的任务处理方法的流程图;
图3是本发明实施例的任务处理方法的系统示意图;
图4是本发明实施例的任务处理方法的将任务链起始任务插入到任务调度中心的流程图;
图5是本发明实施例的多分支任务链的示意图;
图6是本发明实施例的任务处理方法的任务调度中心处理的流程图;
图7是本发明实施例的任务处理方法的任务运行空间处理的流程图;
图8是本发明实施例的任务运行空间的示意图;
图9是本发明实施例的任务链的示意图;
图10是本发明实施例的任务处理装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决现有技术中的问题,本发明提供了一种任务处理方法及装置,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
在对本发明实施例的技术方案进行详细说明之前,对本发明实施例涉及到的各名词定义进行说明:
任务:封装一个业务逻辑处理过程。只可以在对应任务类别的任务运行空间中执行,可以使用的任务外部资源由任务环境限定。每个任务都拥有一个任务类型,也只能在对应的任务运行空间运行。
任务链:一个业务功能的逻辑实现,由多个任务串行组成。
任务线程:一个可以运行单个任务的线程,任务运行空间的组成部分。
任务环境:一组互斥资源的封装,与所属的任务线程一起组成该组互斥资源的独立运行空间。
任务运行空间:由一个或多个任务线程及对应的任务环境组成,一个任务线程池拥有一个任务线程环境,并且只能执行某一类型的任务(也就是说任务运行空间与任务类型是一一对应的)。一个任务运行空间可以没有任务环境,但至少需要有一个任务线程。
任务调度中心:任务调度的总入口与调度中心,其中包含一个调度线程。
方法实施例
根据本发明的实施例,提供了一种任务处理方法,图2是本发明实施例的任务处理方法的流程图,如图2所示,根据本发明实施例的任务处理方法包括如下处理:
步骤201,任务调度中心依次获取任务链中的任务,并根据任务的任务类型,将任务分发到对应类型的任务运行空间中;在实际应用中,如果任务链中的下个任务为空,则表示任务链执行完毕,结束操作。
在执行步骤201之前,需要将业务拆分为由任务组成的任务链,其中,每个任务设置有任务类型;根据任务的任务类型和业务需求设计一个或多个任务运行空间,其中,每个任务运行空间中设置有一个或多个任务线程,每个任务运行空间对应于一种任务类型。优选地,任务运行空间中还包括:任务环境,其中,任务环境为:仅供所述任务运行空间中的任务使用的任务外部资源,该任务外部资源是指不专属于某个任务的公共资源;
在本发明实施例中,优选地,可以根据预先设置的拆分原则将业务拆分为由任务组成的任务链,其中,拆分原则包括:1、执行任务的任务运行空间中的任务环境所封装的任务外部资源除所属的任务运行空间外,不被其他任务运行空间所操作;2、执行任务的任务运行空间仅操作任务环境所封装的任务外部资源和任务内部资源,不能操作其他全局资源;3、执行任务的任务运行空间在处理该任务时,不创建信的任务线程。需要说明的是,在实际应用中,拆分原则还可以包括其他内容。
步骤202,任务运行空间通过任务线程对任务调度中心分发的任务进行处理,将处理后的任务执行结果返回到任务调度中心,并返回执行步骤201,其中,在任务链已执行完的情况下,任务执行结果为空,在任务链未执行完的情况下,任务执行结果为任务链中当前任务的下一个任务。
在步骤202中,任务运行空间通过任务线程对任务调度中心分发的任务进行处理时,还可以对任务环境提供的任务外部资源进行操作。
在本发明实施例中,还可以统计任务运行空间处理各任务的时间,确定耗时的任务并进行分析,根据分析结果,扩充任务运行空间中的任务线程;或者,对任务的处理过程进行优化;或者,对任务进行细分,将任务拆分为多个任务,形成一个子任务链,并针对子任务链创建相应的任务运行空间;或者,对任务环境的任务外部资源进行拆解,并将任务运行空间拆解为多个。
以下结合附图,对本发明实施例的技术方案进行详细说明。
图3是本发明实施例的任务处理方法的系统示意图,如图3所示,系统整体分为任务链,任务调度中心,任务运行空间三部分:其中:
任务链基于业务设计与实现,拥有一个起始任务,执行任务链只要将起始任务放入任务调度中心即可。
任务调度中心,是整个系统中全部任务的调度中心,负责将各个任务放入任务运行空间执行。
任务运行空间是任务实际运行的位置,负责执行任务,并且将任务执行结果——任务链下一个任务放回任务调度中心。
图4是本发明实施例的任务处理方法的将任务链起始任务插入到任务调度中心的流程图,如图4所示,开始任务链时,执行如下处理:
步骤1,系统服务入口根据任务(任务类型)创建任务链起始任务。
步骤2,系统服务入口将任务链起始任务插入到任务调度中心后,即开始了整条任务链的执行。
在本发明实施例中,系统服务器入口是系统的业务主入口,可能是一个TCPServer,也可能是一个WebServer。
根据业务设计任务链时,需严格按照以下原则设计任务链:
1、任务线程环境封装的资源需要保证除所属的任务线程外,不被操作;
2、单个任务处理的实现中,仅允许操作任务内部资源,与任务执行时传入的对应任务运行空间的任务环境资源,不能操作任何其他全局资源;
3、单个任务处理的实现中,不允许创建线程。
在本发明实施例的任务处理流程中,串行任务链也可以设计为类似图5所示的多分支任务链,即一个任务可能在不同的内部处理逻辑时,生成的下一个任务不同。
图6是本发明实施例的任务处理方法的任务调度中心处理的流程图,如图6所示,任务调度中心包含一个调度线程,循环执行以下逻辑:
步骤1,从任务调度中心的任务队列中取出任务;
步骤2,根据任务类型,将任务添加到与该任务类型对应的任务队列中;
步骤3,取下一个任务并分配。
图7是本发明实施例的任务处理方法的任务运行空间处理的流程图,如图7所示,任务运行空间包含一个或多个任务线程,循环执行以下逻辑:
步骤1,从任务运行空间的任务队列中取出任务;
步骤2,运行任务,任务处理过程中,可以操作任务环境相关资源;
步骤3,任务的运行结束后可以有两种返回:返回任务链的下一个任务继续任务链;返回空(即不返回任务)表示任务链结束;
步骤4,如果任务运行结束后返回任务链下一个任务,则直接将该任务放入任务调度中心的任务队列中;
步骤5,从任务运行空间的任务队列中取出下一个任务执行。
在本发明实施例中,基于以上任务处理流程,对于实际业务的实现,仅需根据业务细节进行任务拆分,设计任务链后,单独逐个实现任务即可,不需要再额外关心整套系统框架。
在本发明实施例中,可以从任务,任务线程,任务环境多角度对系统进行优化,并且也可以保证优化的影响能控制在有限的范围内。当系统遇到性能瓶颈时逐步按照以下过程优化即可:
1、统计各任务执行时间,找出耗时任务并分析;
2、可以通过扩充任务运行空间线程的方式直接进行优化。
3、对于耗时的任务,可以单独优化耗时任务处理过程;
4、对于耗时的任务,也可以进行任务细分,将单个任务拆分为多个任务,形成一个子任务链,并对细分后的耗时子任务单独创建一个任务运行空间;
5、对于任务环境的资源访问的性能问题,可以对资源进行拆解,进而将任务运行空间分为多个。
以下结合附图,通过一个简单的供设备接入的服务器对本发明实施例的技术方案进行举例说明。
该简单设备接入服务器实现以下功能:
1、“设备心跳”业务,设备定时向服务器发送心跳数据包,服务器立即向该设备回复心跳应答包;
2、“属性变更”业务,设备属性变化后向服务器发送属性变化数据包,服务器将该属性变化通知到跟该设备关联的其他设备(设备关联关系假定预置在服务器中);
3、“设备日志”业务,设备定时上报设备的运行日志,服务器将该运行日志存储在数据库中;
基于以上业务需求,设计的任务运行空间如下图8所示,具体地,包括:
任务运行空间A(普通任务),用于运行无资源依赖,不会阻塞线程的简单任务;
任务运行空间B(设备管理表),任务环境为不需要加锁的设备管理表,并且仅拥有一个线程,仅用于处理操作设备管理表的相关任务;
任务运行空间C(设备关系表),任务环境为不需要加锁的设备关系表,并且仅拥有一个线程,仅用于处理操作设备关系表的相关任务;
任务运行空间D(数据存储),任务环境为操作数据库的连接池,并且仅拥有一定数量的线程,仅用于处理数据库存储的相关任务;
任务运行空间E(网络通信),无任务环境,但拥有一定数量的线程,用于处理向设备发送数据的任务。
图9是本发明实施例的任务链的示意图,如图9所示,任务链在本系统中执行流程如下:
步骤1,服务器的网络数据接收入口接收到网络层的数据包后,创建“数据解析任务”(任务链的起始任务),并将该任务放入任务调度中心;
步骤2,任务调度中心接收到的“数据解析任务”,根据任务类型“普通任务”,将任务放入“任务运行空间A”执行;
步骤3,“任务运行空间A”的任意一个线程取到“数据解析任务”后,开始执行;
步骤4,“数据解析任务”将二进制数据解析成系统内运行的数据结构(例如C语言的结构体,Java的类等)后,创建任务链的下一个任务“设备状态处理任务”,并作为当前任务执行结果返回给“任务运行空间A”;
步骤5,任务运行空间A将任务返回结果“设备状态处理任务”放回任务调度中心;
步骤6,任务调度中心接收到的“设备状态处理任务”,根据任务类型“设备管理表”,将任务放入“任务运行空间B”执行;(由于任务调度中心与任务运行空间对每个任务处理逻辑均相同,所以后面说明会省略任务调度中心与任务运行空间的处理说明)
步骤7,“设备状态处理任务”在“任务运行空间B”中执行,将设备状态置为在线,并将设备的当前网络连接Socket,当前时间戳等数据更新到设备管理表中,并创建任务链的下一个任务“数据分发任务”;
步骤8,“数据分发任务”在“任务运行空间A”中执行,根据接收到的数据类型的不同创建不同的任务链的下一个任务,数据类型可能是:“心跳”,“属性变化”,“设备日志”;
步骤9,当数据类型是“心跳”时,创建的任务链的下一个任务是“心跳处理任务”:
步骤91,“心跳处理任务”在“任务运行空间B”中执行,从设备管理表中查询出需要回复心跳应答包的当前设备的Socket,并创建任务链下一个任务“心跳应答包构建”;
步骤92,“心跳应答包构建”在“任务运行空间A”中执行,构建出需要回复的二进制的设备心跳应答包,并创建任务链下一个任务“心跳应答发送”;
步骤93,“心跳应答发送”在“任务运行空间E”中执行,将二进制的设备心跳应答包通过当前设备的Socket发送出去,并不再返回任务链的下一个任务;
步骤94,自此,任务链结束,“设备心跳”业务处理完成。
步骤10,当数据类型是“属性变化”时,创建的任务链的下一个任务是“属性变化处理任务a”:
步骤101,“属性变化处理任务a”在“任务运行空间C”中执行,从设备关系表中查询出与当前设备关联的全部设备,并创建任务链的下一个任务“属性变化处理任务b”;
步骤102,“属性变化处理任务b”在“任务运行空间B”中执行,从设备管理表中查询出与当前设备关联的全部设备中在线设备的Socket,并创建任务链的下一个任务“属性变化通知包构建”;
步骤103,“属性变化通知包构建”在“任务运行空间A”中执行,根据当前设备的属性变化构建出需要向全部关联的在线设备推送的属性变化通知二进制数据包,并创建任务链下一个任务“属性变化通知包发送”;
步骤104,“属性变化通知包发送”在“任务运行空间E”中执行,将二进制的设备属性变化通知包通过全部关联的在线设备的Socket发送出去,并不再返回任务链的下一个任务;
步骤105,自此,任务链结束,“属性变化”业务处理完成。
步骤11,当数据类型是“设备日志”时,创建的任务链的下一个任务是“数据存储任务”:
步骤111,“数据存储任务”在“任务运行空间D”中执行,将设备上报的日志存储到数据库中,并不再返回任务链的下一个任务;
步骤112,自此,任务链结束,“设备日志”业务处理完成。
综上所述,借助于本发明实施例的技术方案,业务处理相互独立,某些业务处理失败基本不会影响到其他业务。例如系统数据库故障导致设备日志写入慢或者无法写入,此时“任务运行空间E”线程可能被耗尽,但这样仅仅会影响到“设备日志”业务,“设备心跳”与“属性变更”业务不受影响,仍然可以正常运行。某些临界资源可以不用锁机制,并且拥有独立的运行能力,可以很大的提高性能。例如“设备管理表”与“设备关系表”,由于表只由任务运行空间中一个独立的线程操作,所以不需要加锁,并且表拥有独立的运行能力,即有专门的线程操作,相对于传统的通过锁方式操作表,不占用其他业务线程资源,在大并发量业务时,性能提升是非常明显的。
此外,当系统出现性能瓶颈时,优化也是很方便的。例如可以通过任务运行空间增加任务处理时间统计很快的定位出是哪些任务处理耗时,从而可以只针对单个任务进行优化;部署时可以根据不同任务的并发量,平均运行时间分别配置个任务运行空间的线程数量,这样可以有效利用系统的线程资源,使系统运行效率最大化;再例如发现“数据存储任务”存在性能瓶颈,如果任务要操作多个数据库或者多张表,则可以根据数据库或表将“任务运行空间E”拆分为多个任务空间,并将“数据存储任务”进行拆分为一个子任务链,这样就可以根据数据库或表操作的并发量来调整优化拆分后的任务空间线程数以提升数据存储的整体性能。
装置实施例
根据本发明的实施例,提供了一种任务处理装置,图10是本发明实施例的任务处理装置的结构示意图,如图10所示,根据本发明实施例的任务处理装置包括:任务调度中心100、以及任务运行空间102,以下对本发明实施例的各个模块进行详细的说明。
任务调度中心100,用于依次获取任务链中的任务,并根据任务的任务类型,将任务分发到对应类型的任务运行空间102中;
任务运行空间102,用于通过任务线程对任务调度中心100分发的任务进行处理,将处理后的任务执行结果返回到任务调度中心100,并调用任务调度中心100,其中,在任务链已执行完的情况下,任务执行结果为空,在任务链未执行完的情况下,任务执行结果为任务链中当前任务的下一个任务。
优选地,在本发明实施例中,上述装置还可以进一步包括:
设计模块,用于将业务拆分为由任务组成的任务链,并根据任务的任务类型和业务需求设计一个或多个任务运行空间102,其中,每个任务设置有任务类型,每个任务运行空间102中设置有一个或多个任务线程,每个任务运行空间102对应于一种任务类型。
优化模块,用于统计任务运行空间102处理各任务的时间,确定耗时的任务并进行分析,根据分析结果,扩充任务运行空间102中的任务线程;或者,对任务的处理过程进行优化;或者,对任务进行细分,将任务拆分为多个任务,形成一个子任务链,并针对子任务链创建相应的任务运行空间102;或者,对任务环境的任务外部资源进行拆解,并将任务运行空间102拆解为多个。
优选地,在本发明实施例中,任务运行空间102中还包括:任务环境,其中,任务环境为:仅供任务运行空间中的任务使用的任务外部资源,该任务外部资源是指不专属于某个任务的公共资源;
任务运行空间102进一步用于:在处理任务时,对任务环境提供的任务外部资源进行操作。
设计模块具体用于:根据预先设置的拆分原则将业务拆分为由任务组成的任务链,其中,拆分原则包括:
1、执行任务的任务运行空间102中的任务环境所封装的任务外部资源除所属的任务运行空间102外,不被其他任务运行空间102所操作;
2、执行任务的任务运行空间102仅操作任务环境所封装的任务外部资源和任务内部资源,不能操作其他全局资源;
3、执行任务的任务运行空间102在处理该任务时,不创建信的任务线程。
本发明实施例通过将业务设计抽象为串行的任务链,每个任务均拥有独立的任务运行空间,避免了不同类别或特点任务之间的相互影响;本发明实施例对互斥资源赋予独立的运行能力,来取代锁等机制,避免了阻塞等待导致的线程资源消耗;当系统出现性能瓶颈时,可以分层逐步进行优化,并且优化的影响范围可控。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的客户端中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个客户端中。可以把实施例中的模块组合成一个模块,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者客户端的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的加载有排序网址的客户端中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种任务处理方法,其特征在于,包括:
步骤1,任务调度中心依次获取任务链中的任务,并根据任务的任务类型,将任务分发到对应类型的任务运行空间中;
步骤2,所述任务运行空间通过任务线程对所述任务调度中心分发的任务进行处理,将处理后的任务执行结果返回到所述任务调度中心,执行步骤1,其中,在所述任务链已执行完的情况下,所述任务执行结果为空,在所述任务链未执行完的情况下,所述任务执行结果为所述任务链中当前任务的下一个任务。
2.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
将业务拆分为由任务组成的任务链,其中,每个任务设置有任务类型;
根据任务的任务类型和业务需求设计一个或多个任务运行空间,其中,每个任务运行空间中设置有一个或多个任务线程,每个任务运行空间对应于一种任务类型。
3.如权利要求1所述的方法,其特征在于,所述任务运行空间中还包括:任务环境,其中,所述任务环境为:仅供所述任务运行空间中的任务使用的任务外部资源;
所述任务运行空间通过任务线程对所述任务调度中心分发的任务进行处理时,所述方法进一步包括:
所述任务运行空间对任务环境提供的任务外部资源进行操作。
4.如权利要求2所述的方法,其特征在于,将业务拆分为由任务组成的任务链具体包括:
根据预先设置的拆分原则将业务拆分为由任务组成的任务链,其中,所述拆分原则包括:
执行任务的任务运行空间中的任务环境所封装的任务外部资源除所属的任务运行空间外,不被其他任务运行空间所操作;
执行任务的任务运行空间仅操作任务环境所封装的任务外部资源和任务内部资源,不能操作其他全局资源;
执行任务的任务运行空间在处理该任务时,不创建新的任务线程。
5.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
统计所述任务运行空间处理各任务的时间,确定耗时的任务并进行分析,根据分析结果,扩充任务运行空间中的任务线程;或者,对所述任务的处理过程进行优化;或者,对所述任务进行细分,将所述任务拆分为多个任务,形成一个子任务链,并针对所述子任务链创建相应的任务运行空间;或者,对任务环境的任务外部资源进行拆解,并将任务运行空间拆解为多个。
6.一种任务处理装置,其特征在于,包括:
任务调度中心,用于依次获取任务链中的任务,并根据任务的任务类型,将任务分发到对应类型的任务运行空间中;
所述任务运行空间,用于通过任务线程对所述任务调度中心分发的任务进行处理,将处理后的任务执行结果返回到所述任务调度中心,并调用任务调度中心,其中,在所述任务链已执行完的情况下,所述任务执行结果为空,在所述任务链未执行完的情况下,所述任务执行结果为所述任务链中当前任务的下一个任务。
7.如权利要求6所述的装置,其特征在于,所述装置进一步包括:
设计模块,用于将业务拆分为由任务组成的任务链,并根据任务的任务类型和业务需求设计一个或多个任务运行空间,其中,每个任务设置有任务类型,每个任务运行空间中设置有一个或多个任务线程,每个任务运行空间对应于一种任务类型。
8.如权利要求6所述的装置,其特征在于,所述任务运行空间中还包括:任务环境,其中,所述任务环境为:仅供所述任务运行空间中的任务使用的任务外部资源;
所述任务运行空间进一步用于:在处理任务时,对任务环境提供的任务外部资源进行操作。
9.如权利要求7所述的装置,其特征在于,所述设计模块具体用于:
用于根据预先设置的拆分原则将业务拆分为由任务组成的任务链,其中,所述拆分原则包括:
执行任务的任务运行空间中的任务环境所封装的任务外部资源除所属的任务运行空间外,不被其他任务运行空间所操作;
执行任务的任务运行空间仅操作任务环境所封装的任务外部资源和任务内部资源,不能操作其他全局资源;
执行任务的任务运行空间在处理该任务时,不创建信的任务线程。
10.如权利要求6所述的装置,其特征在于,所述装置进一步包括:
优化模块,用于统计所述任务运行空间处理各任务的时间,确定耗时的任务并进行分析,根据分析结果,扩充任务运行空间中的任务线程;或者,对所述任务的处理过程进行优化;或者,对所述任务进行细分,将所述任务拆分为多个任务,形成一个子任务链,并针对所述子任务链创建相应的任务运行空间;或者,对任务环境的任务外部资源进行拆解,并将任务运行空间拆解为多个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610094434.1A CN105653365A (zh) | 2016-02-22 | 2016-02-22 | 任务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610094434.1A CN105653365A (zh) | 2016-02-22 | 2016-02-22 | 任务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105653365A true CN105653365A (zh) | 2016-06-08 |
Family
ID=56489473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610094434.1A Pending CN105653365A (zh) | 2016-02-22 | 2016-02-22 | 任务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653365A (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106790572A (zh) * | 2016-12-27 | 2017-05-31 | 广州华多网络科技有限公司 | 一种分布式日志收集的系统和方法 |
CN107193659A (zh) * | 2017-05-24 | 2017-09-22 | 千寻位置网络有限公司 | 维护作业任务的系统和设计方法 |
CN107678838A (zh) * | 2017-10-19 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种跟踪虚拟机操作的方法、装置及虚拟机管理平台 |
CN107870948A (zh) * | 2016-09-28 | 2018-04-03 | 平安科技(深圳)有限公司 | 任务调度方法和装置 |
CN109298897A (zh) * | 2018-06-29 | 2019-02-01 | 杭州数澜科技有限公司 | 一种采用资源组的任务分发的系统和方法 |
CN109933485A (zh) * | 2017-12-18 | 2019-06-25 | 中国科学院沈阳自动化研究所 | 一种用于算法执行与监控的调度方法 |
CN110851251A (zh) * | 2019-10-17 | 2020-02-28 | 上海易点时空网络有限公司 | 用于树莓派的后台管理系统处理方法以及装置、存储介质 |
CN111061458A (zh) * | 2019-10-10 | 2020-04-24 | 武汉烽火信息集成技术有限公司 | 一种具有开放式流水线架构的应用创建系统 |
CN111221662A (zh) * | 2019-10-16 | 2020-06-02 | 贝壳技术有限公司 | 任务调度方法、系统及装置 |
US10705761B2 (en) | 2018-09-14 | 2020-07-07 | Yandex Europe Ag | Method of and system for scheduling transmission of I/O operations |
CN111522630A (zh) * | 2020-04-30 | 2020-08-11 | 北京江融信科技有限公司 | 基于批次调度中心的计划任务执行方法以及系统 |
US10908982B2 (en) | 2018-10-09 | 2021-02-02 | Yandex Europe Ag | Method and system for processing data |
US10996986B2 (en) | 2018-12-13 | 2021-05-04 | Yandex Europe Ag | Method and system for scheduling i/o operations for execution |
US11003600B2 (en) | 2018-12-21 | 2021-05-11 | Yandex Europe Ag | Method and system for scheduling I/O operations for processing |
US11010090B2 (en) | 2018-12-29 | 2021-05-18 | Yandex Europe Ag | Method and distributed computer system for processing data |
US11048547B2 (en) | 2018-10-09 | 2021-06-29 | Yandex Europe Ag | Method and system for routing and executing transactions |
US11055160B2 (en) | 2018-09-14 | 2021-07-06 | Yandex Europe Ag | Method of determining potential anomaly of memory device |
US11061720B2 (en) | 2018-09-14 | 2021-07-13 | Yandex Europe Ag | Processing system and method of detecting congestion in processing system |
CN113360258A (zh) * | 2021-05-28 | 2021-09-07 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113495782A (zh) * | 2021-07-07 | 2021-10-12 | 上海映驰科技有限公司 | 实现确定性执行目标的任务调度方法、装置及电子设备 |
US11184745B2 (en) | 2019-02-06 | 2021-11-23 | Yandex Europe Ag | Actor system and method for transmitting a message from a first actor to a second actor |
US11288254B2 (en) | 2018-10-15 | 2022-03-29 | Yandex Europe Ag | Method of and system for processing request in distributed database |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101308468A (zh) * | 2008-06-13 | 2008-11-19 | 南京邮电大学 | 网格计算环境下的作业跨域控制方法 |
CN101533417A (zh) * | 2009-04-28 | 2009-09-16 | 阿里巴巴集团控股有限公司 | 一种实现etl调度的方法及系统 |
US20100186020A1 (en) * | 2009-01-20 | 2010-07-22 | Sap Ag | System and method of multithreaded processing across multiple servers |
CN102508716A (zh) * | 2011-09-29 | 2012-06-20 | 用友软件股份有限公司 | 任务控制装置和任务控制方法 |
US8209702B1 (en) * | 2007-09-27 | 2012-06-26 | Emc Corporation | Task execution using multiple pools of processing threads, each pool dedicated to execute different types of sub-tasks |
CN102594891A (zh) * | 2012-02-17 | 2012-07-18 | 中国科学院计算技术研究所 | 用于处理远程过程调用请求的方法及系统 |
CN102763086A (zh) * | 2012-01-18 | 2012-10-31 | 华为技术有限公司 | 分布式计算任务处理系统和任务处理方法 |
CN102866918A (zh) * | 2012-07-26 | 2013-01-09 | 中国科学院信息工程研究所 | 面向分布式编程框架的资源管理系统 |
CN103473129A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 线程数目可伸缩的多任务队列调度系统及其实现方法 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制系统 |
CN103795804A (zh) * | 2014-02-24 | 2014-05-14 | 华为技术有限公司 | 存储资源调度方法及存储计算系统 |
-
2016
- 2016-02-22 CN CN201610094434.1A patent/CN105653365A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8209702B1 (en) * | 2007-09-27 | 2012-06-26 | Emc Corporation | Task execution using multiple pools of processing threads, each pool dedicated to execute different types of sub-tasks |
CN101308468A (zh) * | 2008-06-13 | 2008-11-19 | 南京邮电大学 | 网格计算环境下的作业跨域控制方法 |
US20100186020A1 (en) * | 2009-01-20 | 2010-07-22 | Sap Ag | System and method of multithreaded processing across multiple servers |
CN101533417A (zh) * | 2009-04-28 | 2009-09-16 | 阿里巴巴集团控股有限公司 | 一种实现etl调度的方法及系统 |
CN102508716A (zh) * | 2011-09-29 | 2012-06-20 | 用友软件股份有限公司 | 任务控制装置和任务控制方法 |
CN102763086A (zh) * | 2012-01-18 | 2012-10-31 | 华为技术有限公司 | 分布式计算任务处理系统和任务处理方法 |
CN102594891A (zh) * | 2012-02-17 | 2012-07-18 | 中国科学院计算技术研究所 | 用于处理远程过程调用请求的方法及系统 |
CN102866918A (zh) * | 2012-07-26 | 2013-01-09 | 中国科学院信息工程研究所 | 面向分布式编程框架的资源管理系统 |
CN103473129A (zh) * | 2013-09-18 | 2013-12-25 | 柳州市博源环科科技有限公司 | 线程数目可伸缩的多任务队列调度系统及其实现方法 |
CN103593242A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 基于Yarn框架的资源共享控制系统 |
CN103795804A (zh) * | 2014-02-24 | 2014-05-14 | 华为技术有限公司 | 存储资源调度方法及存储计算系统 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107870948A (zh) * | 2016-09-28 | 2018-04-03 | 平安科技(深圳)有限公司 | 任务调度方法和装置 |
CN106790572A (zh) * | 2016-12-27 | 2017-05-31 | 广州华多网络科技有限公司 | 一种分布式日志收集的系统和方法 |
CN106790572B (zh) * | 2016-12-27 | 2021-05-14 | 广州华多网络科技有限公司 | 一种分布式日志收集的系统和方法 |
CN107193659A (zh) * | 2017-05-24 | 2017-09-22 | 千寻位置网络有限公司 | 维护作业任务的系统和设计方法 |
CN107678838B (zh) * | 2017-10-19 | 2021-07-02 | 郑州云海信息技术有限公司 | 一种跟踪虚拟机操作的方法、装置及虚拟机管理平台 |
CN107678838A (zh) * | 2017-10-19 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种跟踪虚拟机操作的方法、装置及虚拟机管理平台 |
CN109933485A (zh) * | 2017-12-18 | 2019-06-25 | 中国科学院沈阳自动化研究所 | 一种用于算法执行与监控的调度方法 |
CN109933485B (zh) * | 2017-12-18 | 2021-06-15 | 中国科学院沈阳自动化研究所 | 一种用于算法执行与监控的调度方法 |
CN109298897A (zh) * | 2018-06-29 | 2019-02-01 | 杭州数澜科技有限公司 | 一种采用资源组的任务分发的系统和方法 |
US11061720B2 (en) | 2018-09-14 | 2021-07-13 | Yandex Europe Ag | Processing system and method of detecting congestion in processing system |
US11055160B2 (en) | 2018-09-14 | 2021-07-06 | Yandex Europe Ag | Method of determining potential anomaly of memory device |
US10705761B2 (en) | 2018-09-14 | 2020-07-07 | Yandex Europe Ag | Method of and system for scheduling transmission of I/O operations |
US11449376B2 (en) | 2018-09-14 | 2022-09-20 | Yandex Europe Ag | Method of determining potential anomaly of memory device |
US10908982B2 (en) | 2018-10-09 | 2021-02-02 | Yandex Europe Ag | Method and system for processing data |
US11048547B2 (en) | 2018-10-09 | 2021-06-29 | Yandex Europe Ag | Method and system for routing and executing transactions |
US11288254B2 (en) | 2018-10-15 | 2022-03-29 | Yandex Europe Ag | Method of and system for processing request in distributed database |
US10996986B2 (en) | 2018-12-13 | 2021-05-04 | Yandex Europe Ag | Method and system for scheduling i/o operations for execution |
US11003600B2 (en) | 2018-12-21 | 2021-05-11 | Yandex Europe Ag | Method and system for scheduling I/O operations for processing |
US11010090B2 (en) | 2018-12-29 | 2021-05-18 | Yandex Europe Ag | Method and distributed computer system for processing data |
US11184745B2 (en) | 2019-02-06 | 2021-11-23 | Yandex Europe Ag | Actor system and method for transmitting a message from a first actor to a second actor |
CN111061458A (zh) * | 2019-10-10 | 2020-04-24 | 武汉烽火信息集成技术有限公司 | 一种具有开放式流水线架构的应用创建系统 |
CN111221662B (zh) * | 2019-10-16 | 2021-01-05 | 贝壳找房(北京)科技有限公司 | 任务调度方法、系统及装置 |
CN111221662A (zh) * | 2019-10-16 | 2020-06-02 | 贝壳技术有限公司 | 任务调度方法、系统及装置 |
CN110851251A (zh) * | 2019-10-17 | 2020-02-28 | 上海易点时空网络有限公司 | 用于树莓派的后台管理系统处理方法以及装置、存储介质 |
CN111522630B (zh) * | 2020-04-30 | 2021-04-06 | 北京江融信科技有限公司 | 基于批次调度中心的计划任务执行方法以及系统 |
CN111522630A (zh) * | 2020-04-30 | 2020-08-11 | 北京江融信科技有限公司 | 基于批次调度中心的计划任务执行方法以及系统 |
CN113360258A (zh) * | 2021-05-28 | 2021-09-07 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113495782A (zh) * | 2021-07-07 | 2021-10-12 | 上海映驰科技有限公司 | 实现确定性执行目标的任务调度方法、装置及电子设备 |
CN113495782B (zh) * | 2021-07-07 | 2024-02-02 | 上海映驰科技有限公司 | 实现确定性执行目标的任务调度方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105653365A (zh) | 任务处理方法及装置 | |
Singh et al. | A survey on platforms for big data analytics | |
CN103207785B (zh) | 数据下载请求的处理方法、装置及系统 | |
US8150889B1 (en) | Parallel processing framework | |
CN103605764A (zh) | 一种网络爬虫系统及网络爬虫多任务执行和调度方法 | |
WO2014062637A2 (en) | Systems and methods for fault tolerant, adaptive execution of arbitrary queries at low latency | |
CN105260388A (zh) | 一种分布式垂直爬虫服务系统的优化方法 | |
CN107766147A (zh) | 分布式的数据分析任务调度系统 | |
CN105183564A (zh) | 基于云测试平台的设备调度方法、装置及系统 | |
EP3588405A1 (en) | Systems and methods for scheduling a set of non-preemptive tasks in a multi-robot environment | |
US9418089B2 (en) | Merging of sorted lists using array pair | |
Wang et al. | IntegrityMR: Integrity assurance framework for big data analytics and management applications | |
Lin et al. | Performance evaluation of job schedulers on Hadoop YARN | |
CN104239337B (zh) | 基于tcam的查表处理方法及装置 | |
CN107357885A (zh) | 数据写入方法及装置、电子设备、计算机存储介质 | |
CN104410675A (zh) | 数据传输方法、数据系统及相关装置 | |
Mirtaheri et al. | Dist-ria crawler: A distributed crawler for rich internet applications | |
Yang et al. | Performance improvement of apache storm using InfiniBand RDMA | |
CN1783121A (zh) | 用于执行设计自动化的方法和系统 | |
US10268727B2 (en) | Batching tuples | |
CN103761128A (zh) | 一种指令执行方法、装置及系统 | |
CN103347059A (zh) | 实现用户配置参数传递的方法、客户端和系统 | |
Bengre et al. | A learning-based scheduler for high volume processing in data warehouse using graph neural networks | |
Chen et al. | G-storm: a gpu-aware storm scheduler | |
Ba et al. | A BSP based approach for NFAs intersection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160608 |