CN103678488A - 分布式大批量动态任务引擎及采用其处理数据的方法 - Google Patents
分布式大批量动态任务引擎及采用其处理数据的方法 Download PDFInfo
- Publication number
- CN103678488A CN103678488A CN201310556948.0A CN201310556948A CN103678488A CN 103678488 A CN103678488 A CN 103678488A CN 201310556948 A CN201310556948 A CN 201310556948A CN 103678488 A CN103678488 A CN 103678488A
- Authority
- CN
- China
- Prior art keywords
- task
- dte
- server
- proxy server
- engine
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种分布式大批量动态任务引擎(DTE)及采用其处理数据的方法,该分布式大批量动态任务引擎包括DTE网关服务器(DTE Gateway)以及DTE代理服务器(DTE Agent)两部分;其中,DTE网关服务器用于管理DTE代理服务器,DTE代理服务器是用于执行任务的服务器。当只是需要执行某一类任务时,使用该分布式大批量动态任务引擎的是任务客户端;当需要执行某一组任务,并且需要管理这些任务时,使用该分布式大批量动态任务引擎的是任务管理器。本发明不仅可以并行执行多个任务,而且当任务内容发生改变时,无需更新任务执行的服务器,而仅需对任务脚本进行调整即可实现。
Description
技术领域
本发明涉及分布式任务技术领域,特别涉及一种分布式大批量动态任务引擎及采用该分布式大批量动态任务引擎处理数据的方法。
背景技术
在WEB系统中,常常需要实现定时任务执行的部分。在常规的JavaEE系统中,普遍采用Quartz进行简单的任务调度,设置任务的执行频率。到达执行时,在本机执行此任务,并且处理任务的结果进行存储等。但是随着任务数量和种类的增加,系统面临几方面的挑战。
1.在小型的服务器系统中,一般抓取数据和数据处理都由一台服务器来实现,但随着数据量的增大,一台服务器的效能已经不能满足系统的要求。由于这种单一服务器的系统难以满足任务执行要求,必然需要调用大批量的服务器进行运算执行。
2.任务的执行内容根据不同的业务要求,可能千差万别,并且随时可能调整变更。常规情况下,不同的任务往往通过不同的参数来区别执行。执行任务的服务器需要装载所有可能任务的执行程序来执行这些不同的任务。当新类型的任务增加时,需要更新所有的任务执行服务器来支持。
3.任务的结果需要集中式处理和存储。
发明内容
有鉴于此,本发明针对现有技术的问题,提出了一种分布式大批量动态任务引擎(Distribution Task Engine,DTE)。该分布式大批量动态任务引擎包括DTE网关服务器(DTE Gateway)以及DTE代理服务器(DTE Agent)两部分。其中,DTE网关服务器用于管理DTE代理服务器。DTE代理服务器是用于执行任务的服务器。使用该动态任务引擎的是任务客户端(TaskClient)和任务管理器(Task Manager)。任务客户端(Task Client)是指某些服务器只是需要执行某一类任务。任务管理器(Task Manager)是指某些服务器需要执行某一组任务,并且需要管理这些任务。
该动态任务引擎将任务的执行通过相应的任务脚本及配套的参数来表示。当需要执行任务时,需要同时提供任务的脚本、配套参数、回调地址以及任务的唯一身份识别码(ID)、任务的优先级,并且把任务提交到DTE网关服务器。DTE网关服务器将把任务分配到相对空闲的DTE代理服务器(DTEAgent)去执行。
DTE代理服务器(DTE Agent)中有一个任务等待队列和执行队列。在DTE代理服务器(DTE Agent)的执行队列空闲时,提交过来的任务会被立即放入到执行队列中执行。如果执行队列已满,则DTE代理服务器(DTEAgent)会把任务放入到等待队列中,根据任务的优先级来排序。在相同优先级的情况下,后放入的任务会在先被执行。当执行某个具体任务时,DTE代理服务器(DTE Agent)会加载可执行此任务脚本的脚本引擎,将任务参数和任务脚本组合起来执行。考虑到大多数情况下需要执行的任务中包含很多子任务,DTE代理服务器(DTE Agent)包含一个子任务执行队列。任务执行队列和子任务执行队列都是以并发的模式来执行,加速任务的完成。同时DTE代理服务器(DTE Agent)支持两种子任务的生成机制。第一种是根据任务中的迭代参数产生批量的子任务,第二种是根据任务中提供的子任务管理脚本动态生成。
DTE代理服务器(DTE Agent)会收集该脚本的结果,将结果通过回调地址传递给相应的任务结果处理服务器。通常情况下,任务结果处理服务器就是任务的发起者,即任务客户端(Task Client)或者任务管理器(TaskManager)。
当任务的结果数量增大时,也可以将提供专门的任务结果处理服务器集群,将结果回调到该集群来处理。这只需要修改任务的回调地址即可。
当任务的执行内容或方式变更时,只需要变更任务客户端(TaskClient)或者任务管理器(Task Manager)中的任务脚本,而分布式大批量动态任务引擎(DTE)不需要做出任务修改。
同时,在服务器的部署上也相当灵活。不同的任务管理器(TaskManager)或者任务客户端(Task Client)可以共享一组巨大的DTE代理服务器(DTE Agent)。在特定的情况下,也可以单独部署一组DTE代理服务器(DTE Agent)来处理某些特殊的任务。
附图说明
图1是本发明提出的分布式大批量动态任务引擎的结构示意图;
图2是本发明提出的分布式大批量动态任务引擎应用的第一实施例;
图3是本发明提出的分布式大批量动态任务引擎应用的第二实施例;
图4是本发明提出的分布式大批量动态任务引擎应用的第三实施例;
具体实施方式
下面,结合附图来对本发明进行更为详细的说明。
参见图1,本发明提出的分布式大批量动态任务引擎DTE包括DTE网关服务器(DTE Gateway)以及DTE代理服务器(DTE Agent)两部分。其中,DTE网关服务器用于管理DTE代理服务器。DTE代理服务器是用于执行任务的服务器。使用该动态任务引擎的是任务客户端(Task Client)和任务管理器(Task Manager)。其中,当只是需要执行某一类任务时,使用该动态任务引擎的是任务客户端(Task Client);当需要执行某一组任务,并且需要管理这些任务时,使用该动态任务引擎的是任务管理器(TaskManager)。
该动态任务引擎DTE将任务的执行通过相应的任务脚本及配套的参数来表示。当需要执行任务时,需要同时提供任务的脚本、配套参数、回调地址以及任务的唯一身份识别码(ID)、任务的优先级,并且把任务提交到DTE网关服务器。DTE网关服务器将把任务分配到相对空闲的DTE代理服务器(DTE Agent)去执行。
DTE代理服务器(DTE Agent)中有一个任务等待队列和执行队列。在DTE代理服务器(DTE Agent)的执行队列空闲时,提交过来的任务会被立即放入到执行队列中执行。如果执行队列已满,则DTE代理服务器(DTEAgent)会把任务放入到等待队列中,根据任务的优先级来排序。在相同优先级的情况下,后放入的任务会在先被执行。当执行某个具体任务时,DTE代理服务器(DTE Agent)会加载可执行此任务脚本的脚本引擎,将任务参数和任务脚本组合起来执行。考虑到大多数情况下需要执行的任务中包含很多子任务,DTE代理服务器(DTE Agent)包含一个子任务执行队列。任务执行队列和子任务执行队列都是以并发的模式来执行,加速任务的完成。同时DTE代理服务器(DTE Agent)支持两种子任务的生成机制。第一种是根据任务中的迭代参数产生批量的子任务,第二种是根据任务中提供的子任务管理脚本动态生成。DTE代理服务器(DTE Agent)会收集该脚本的结果,将结果通过回调地址传递给相应的任务客户端(Task Client)或者任务管理器(Task Manager)。
本发明提出的分布式大批量动态任务引擎DTE的结构,可以使得当任务的执行内容或方式变更时,只需要变更任务客户端(Task Client)或者任务管理器(Task Manager)中的任务脚本即可,而分布式大批量动态任务引擎(DTE)不需要做出任务修改。同时,在服务器的部署上也相当灵活。不同的任务管理器(Task Manager)或者任务客户端(Task Client)可以共享一组巨大的DTE代理服务器(DTE Agent)。在特定的情况下,也可以单独部署一组DTE代理服务器(DTE Agent)来处理某些特殊的任务。
在下文中,将通过具体的实施例来说明本发明。
实施例一
实施例一是本发明的分布式大批量动态任务引擎用于酒店系统的数据管理的实例;参见图2,酒店系统需要抓取酒店全年的实时价格,大约需要发送10000000左右的消息给到酒店的系统,把抓取到的价格分类存储到相应的数据仓库中(即图2中的数据仓库A-D)。为实现这一目的,我们采用了三组服务器,第一组服务器负责管理这些抓取任务,考虑不同类型的任务参数不同,且频率不同,分别交由不同的服务器来管理(即图2中的任务管理器A-D)。第二组服务器是DTE网关服务器(DTE Gateway)和DTE代理服务器(DTE Agent)。第三组服务器负责存储抓取数据的数据仓库(即图2中的数据仓库A-D)。当任务到达执行时间,第一组服务器、(即图2中的任务管理器A-D)会把任务及存储结果的数据仓库地址发送给DTE网关服务器,DTE代理服务器执行任务,结束后,把数据回调给指定的数据仓库(即图2中的任务管理器A-D)。由于这些任务中包含的子任务都是预先设定的(静态子任务),DTE网关服务器可以根据设定的参数创建出这些子任务。
实施例二
实施例二给出了采用本发明的分布式大批量动态任务引擎来定时同步不同数据仓库中的数据的过程。
参见图3,当需要定时同步不同数据仓库中的数据时,需要每五分钟检查数据仓库A1、A2、A3和A4是否有数据更新,如果有就需要把这些变化的数据同步到数据仓库B中。数据仓库B的数据来源于多个数据仓库(即数据仓库A1-A4),又只包含其中部分数据,而不是所有。
为了实现这一功能,任务管理器负责把数据仓库B中的数据分片,根据数据的关键字从数据源定位服务器中来获取数据源,根据数据源的数据关键字的数量分组,把同步脚本,一组关键字加上源数据仓库的地址,以及待同步的数据仓库地址传递给DTE网关服务器(DTE Gateway)和DTE代理服务器(DTE Agent)。
DTE网关服务器会首先调用同步脚本中的管理脚本去源数据仓库(即数据仓库A1-A4)检查变化,如果数据没有变化,则该任务就结束,将这个结果通知给待同步数据仓库。如果数据有变化,就会根据变化的数据关键字动态产生一批子任务,每一个子任务负责同步一个数据关键字,将变化内容更新到待同步数据仓库中。
实施例三
实施例三给出了采用本发明的分布式大批量动态任务引擎来从不同网站抓取数据的过程。
参见图4,当需要到不同的网站抓取数据,经分析后存储到一个统一的数据仓库中时,任务管理器把任务提交给DTE网关服务器(DTE Gateway)和DTE代理服务器(DTE Agent)。DTE代理服务器负责到不同的目标网站(即网站1-4)上抓取数据,最后把结果传递给数据仓库来更新。由于不同的网站上抓取任务的差异,我们将任务执行的脚本直接存储在任务管理器上。当有新的网站需要抓取时只需要将新的任务脚本及配置添加到任务管理器中即可。
通过上述实施例一至三的说明,本发明提出的分布式大批量动态任务引擎不仅可以并行执行多个任务,而且当任务内容发生改变时,无需更新任务执行的服务器,而仅需对任务脚本进行调整即可实现。
至此,上述描述已经详细的说明了本发明。然而,前文描述的实施例仅仅只是本发明的优选实施例,其并非用于限定本发明。本领域技术人员在不脱离本发明精神的前提下,可对本发明做任何的修改,而本发明的保护范围由所附的权利要求来限定。
Claims (6)
1.一种分布式大批量动态任务引擎,该分布式大批量动态任务引擎包括DTE网关服务器以及DTE代理服务器两部分;其中,DTE网关服务器用于管理DTE代理服务器,DTE代理服务器是用于执行任务的服务器。
2.根据权利要求1所述的分布式大批量动态任务引擎,其特征在于:当只是需要执行某一类任务时,使用该分布式大批量动态任务引擎的是任务客户端;当需要执行某一组任务,并且需要管理这些任务时,使用该分布式大批量动态任务引擎的是任务管理器。
3.一种采用分布式大批量动态任务引擎处理数据的方法,其特征在于:
所述分布式大批量动态任务引擎包括DTE网关服务器以及DTE代理服务器两部分;其中,DTE网关服务器用于管理DTE代理服务器,DTE代理服务器是用于执行任务的服务器;
当需要执行任务时,任务管理器将任务提交到DTE网关服务器,DTE网关服务器把任务分配到相对空闲的DTE代理服务器去执行;在DTE代理服务器的执行队列空闲时,提交过来的任务会被立即放入到执行队列中执行,如果执行队列已满,则DTE代理服务器会把任务放入到等待队列中,根据任务的优先级来排序,在相同优先级的情况下,后放入的任务会在先被执行,当执行某个具体任务时,DTE代理服务器会加载可执行此任务脚本的脚本引擎,将任务参数和任务脚本组合起来执行;
DTE代理服务器会收集该脚本的结果,将结果通过回调地址传递给相应的任务管理器。
4.根据权利要求3所述的方法,其特征在于:
如果需要执行的任务中包含很多子任务,则DTE代理服务器还包含一个子任务执行队列;任务执行队列和子任务执行队列以并发的模式来执行,加速任务的完成。
5.根据权利要求4所述的方法,其特征在于:
所述DTE代理服务器支持两种子任务的生成机制,第一种是根据任务中的迭代参数产生批量的子任务,第二种是根据任务中提供的子任务管理脚本动态生成。
6.根据权利要求5所述的方法,其特征在于:
当任务的执行内容或方式变更时,只需要变更任务客户端或者任务管理器中的任务脚本,而分布式大批量动态任务引擎不需要做出任务修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310556948.0A CN103678488B (zh) | 2013-11-12 | 2013-11-12 | 分布式大批量动态任务引擎及采用其处理数据的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310556948.0A CN103678488B (zh) | 2013-11-12 | 2013-11-12 | 分布式大批量动态任务引擎及采用其处理数据的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678488A true CN103678488A (zh) | 2014-03-26 |
CN103678488B CN103678488B (zh) | 2015-03-04 |
Family
ID=50316033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310556948.0A Active CN103678488B (zh) | 2013-11-12 | 2013-11-12 | 分布式大批量动态任务引擎及采用其处理数据的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678488B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104735138A (zh) * | 2015-03-09 | 2015-06-24 | 中国科学院计算技术研究所 | 一种面向用户生成内容的分布式采集方法与系统 |
CN105630614A (zh) * | 2015-12-22 | 2016-06-01 | 世纪龙信息网络有限责任公司 | 批处理任务处理系统和方法 |
CN108205531A (zh) * | 2016-12-16 | 2018-06-26 | 北京京东尚科信息技术有限公司 | 数据抽取方法和数据抽取系统 |
CN108334675A (zh) * | 2018-01-18 | 2018-07-27 | 北京航空航天大学 | 数字飞行器工况集批量仿真的人工智能处理方法及系统 |
CN111026527A (zh) * | 2019-11-18 | 2020-04-17 | 江苏艾佳家居用品有限公司 | 一种处理海量定时任务的分发执行系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464884A (zh) * | 2008-12-31 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 一种分布式任务系统及应用该系统的数据处理方法 |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
CN101950300A (zh) * | 2010-09-20 | 2011-01-19 | 华南理工大学 | 一种分层结构、分布式搜索引擎系统及其实现方法 |
CN102497353A (zh) * | 2011-10-28 | 2012-06-13 | 深圳第七大道科技有限公司 | 多服务器分布式数据处理方法、服务器及系统 |
CN102915254A (zh) * | 2011-08-02 | 2013-02-06 | 中兴通讯股份有限公司 | 任务管理方法及装置 |
-
2013
- 2013-11-12 CN CN201310556948.0A patent/CN103678488B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464884A (zh) * | 2008-12-31 | 2009-06-24 | 阿里巴巴集团控股有限公司 | 一种分布式任务系统及应用该系统的数据处理方法 |
CN101741850A (zh) * | 2009-12-25 | 2010-06-16 | 北京邮电大学 | 面向混合网络服务的多任务并发执行系统及方法 |
CN101950300A (zh) * | 2010-09-20 | 2011-01-19 | 华南理工大学 | 一种分层结构、分布式搜索引擎系统及其实现方法 |
CN102915254A (zh) * | 2011-08-02 | 2013-02-06 | 中兴通讯股份有限公司 | 任务管理方法及装置 |
CN102497353A (zh) * | 2011-10-28 | 2012-06-13 | 深圳第七大道科技有限公司 | 多服务器分布式数据处理方法、服务器及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104735138A (zh) * | 2015-03-09 | 2015-06-24 | 中国科学院计算技术研究所 | 一种面向用户生成内容的分布式采集方法与系统 |
CN104735138B (zh) * | 2015-03-09 | 2018-01-09 | 中国科学院计算技术研究所 | 一种面向用户生成内容的分布式采集方法与系统 |
CN105630614A (zh) * | 2015-12-22 | 2016-06-01 | 世纪龙信息网络有限责任公司 | 批处理任务处理系统和方法 |
CN105630614B (zh) * | 2015-12-22 | 2019-01-11 | 世纪龙信息网络有限责任公司 | 批处理任务处理系统和方法 |
CN108205531A (zh) * | 2016-12-16 | 2018-06-26 | 北京京东尚科信息技术有限公司 | 数据抽取方法和数据抽取系统 |
CN108205531B (zh) * | 2016-12-16 | 2022-01-28 | 北京京东尚科信息技术有限公司 | 数据抽取方法和数据抽取系统 |
CN108334675A (zh) * | 2018-01-18 | 2018-07-27 | 北京航空航天大学 | 数字飞行器工况集批量仿真的人工智能处理方法及系统 |
CN108334675B (zh) * | 2018-01-18 | 2022-03-15 | 北京航空航天大学 | 数字飞行器工况集批量仿真的人工智能处理方法及系统 |
CN111026527A (zh) * | 2019-11-18 | 2020-04-17 | 江苏艾佳家居用品有限公司 | 一种处理海量定时任务的分发执行系统 |
CN111026527B (zh) * | 2019-11-18 | 2022-07-08 | 江苏艾佳家居用品有限公司 | 一种处理海量定时任务的分发执行系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103678488B (zh) | 2015-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422853B2 (en) | Dynamic tree determination for data processing | |
US8150889B1 (en) | Parallel processing framework | |
Aumala et al. | Beyond load balancing: Package-aware scheduling for serverless platforms | |
US8584136B2 (en) | Context-aware request dispatching in clustered environments | |
CN110825535B (zh) | 一种作业调度的方法和系统 | |
CN103678488B (zh) | 分布式大批量动态任务引擎及采用其处理数据的方法 | |
US20060095914A1 (en) | System and method for job scheduling | |
CN103605764A (zh) | 一种网络爬虫系统及网络爬虫多任务执行和调度方法 | |
CN104915259A (zh) | 一种应用于分布式采集系统的任务调度方法 | |
CN113220431B (zh) | 跨云的分布式数据任务调度方法、设备及存储介质 | |
CN105653365A (zh) | 任务处理方法及装置 | |
CN102012840A (zh) | 一种数据的批量调度方法和系统 | |
CN103634138A (zh) | 分布式调度的远程管理与运维方法及其系统 | |
CN113938321B (zh) | 可扩展的运维管理系统、方法、电子设备和可读存储介质 | |
US11120049B2 (en) | Concurrent data imports | |
CN102968303A (zh) | 程序设计系统和程序设计方法 | |
WO2019117767A1 (en) | Method, function manager and arrangement for handling function calls | |
US10819557B1 (en) | Systems and methods for selective discovery of services | |
CN102214094B (zh) | 经由异步编程模型执行操作 | |
US11520863B2 (en) | Systems and methods for importing software license metric data into a configuration management database (CMDB) | |
Aksyonov et al. | Perspectives of modeling in metallurgical production (WIP) | |
CN103856531A (zh) | 一种基于多协作者的局域网下载装置及方法 | |
US20200403862A1 (en) | Systems and methods for cloud resource synchronization | |
CN113760481A (zh) | 一种分布式定时任务调度系统和方法 | |
US11522943B1 (en) | System and method for deferring data retrieval |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |