CN102761617B - 一种工作流队列服务器、工作流调度系统及其方法 - Google Patents
一种工作流队列服务器、工作流调度系统及其方法 Download PDFInfo
- Publication number
- CN102761617B CN102761617B CN201210228206.0A CN201210228206A CN102761617B CN 102761617 B CN102761617 B CN 102761617B CN 201210228206 A CN201210228206 A CN 201210228206A CN 102761617 B CN102761617 B CN 102761617B
- Authority
- CN
- China
- Prior art keywords
- workflow
- queue server
- task
- workflow queue
- client
- 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.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种工作流队列服务器、一种工作流调度系统和一种工作流调度方法,所述工作流队列服务器用于存储一个或一个以上机构的任务,定期从数据库中装载符合所述机构条件的任务到本地,当所述工作流队列服务器收到客户端请求时将存储的符合请求条件的任务返回给所述客户端;所述工作流调度系统包括工作流队列服务器布告板和至少一个所述的工作流队列服务器,以把作业任务按照机构的不同散列到多个工作流队列服务器,每个机构最多对应一个所述工作流队列服务器。本发明把工作流中大部分任务检索的计算从数据库转移到一个或多个服务器中,减轻了数据库的访问压力,降低了数据库索引空间占用,而且提高了客户端的响应速度。
Description
技术领域
本发明涉及工作流任务调度技术领域,尤其涉及一种工作流队列服务器、工作流调度系统及其方法。
背景技术
任务调度是高并发工作流系统的关键技术,直接影响到大型流程管理系统的可用性。传统的工作流任务队列只对任务队列进行一次散列,一般形成一个不同机构和不同任务类型混杂的任务列表。
这种任务调度方法存在下述不足:
1)客户端连接到队列服务后,在请求任务时,队列服务还要在一个二维数据表里查询任务并排序,然后再把计算结果返回给客户端,计算开销较大,响应时间比较长,客户体验不好;
2)队列服务也是按照机构和任务类型两个维度从数据库查询任务,对数据库的索引开销也较大,查询复杂度也高,在大并发下访问下,数据库系统压力过大。
发明内容
本发明的目的在于提出一种工作流队列服务器、一种工作流调度系统和一种工作流调度方法,能够减轻数据库的访问压力,降低数据库索引空间占用,提高客户端的响应速度。
为达此目的,本发明包括一种工作流队列服务器,用于存储一个或一个以上机构的任务,定期从数据库中装载符合所述机构条件的任务,当所述工作流队列服务器收到客户端请求时将存储的符合请求条件的任务返回给所述客户 端。
进一步地,所述工作流队列服务器将存储的任务按机构和任务类型散列在不同任务队列中,所述工作流队列服务器对各所述任务队列中的任务按照任务优先级从高到低排序,所述工作流队列服务器所散列的队列的个数等于该工作流队列服务器所属机构数与任务类型数的乘积。
本发明还包括一种工作流调度系统,包括工作流队列服务器布告板和至少一个如上所述的工作流队列服务器,每个机构最多对应一个所述工作流队列服务器,所述工作流队列服务器布告板用于发布系统中工作流队列服务器的信息,所述信息包括工作流队列服务器的地址信息和所述工作流队列服务器对应的机构信息,使得所述系统能将作业任务按照任务所属机构散列到多个所述工作流队列服务器。
进一步地,各客户端应用系统均具有所属机构,均通过所述工作流队列服务器布告板查找所属机构对应的工作流队列服务器信息,然后通过查找到的工作流队列服务器调用任务。
进一步地,各所述客户端均维护一个到该客户端的所述所属机构的工作流队列服务器的连接池,用于减少连接开销。
进一步地,所述工作流队列服务器收到客户端请求后根据请求的机构和任务类型将所述机构和类型的任务队列中的最优先任务返回所述客户端。本发明还包括一种工作流调度方法,包括:
S1、启动各个工作流队列服务器;
S2、各工作流队列服务器定期从数据库中装载对应机构的任务到本地;
S3、客户端连接一个工作流队列服务器;
S4、所述客户端请求调用所述工作流队列服务器中的任务;
S5、所述工作流队列服务器将符合请求条件的最优先的任务返回给所述客户端。
进一步地,所述各工作流队列服务器均为本发明所述的工作流队列服务器。
进一步地,所述步骤S5包括,所述工作流队列服务器收到所述客户端请求后根据请求的机构和任务类型将所述机构和所述类型的任务队列中的最优先任务返回所述客户端。
进一步地,所述步骤S3具体为,客户端通过查询工作流队列服务器布告板查找所述工作流队列服务器地址,通过所述地址连接所述工作流队列服务器,其中所述工作流队列服务器布告板是存储在数据库中或每个工作流队列服务器中的数据表或文件,用于记录各个工作流队列服务器的信息,所述信息包括队列服务器的地址信息。本发明有益技术效果是把工作流中大部分任务检索的计算从数据库转移到一个或多个服务器中,减轻了数据库的访问压力,降低了数据库索引空间占用,而且提高了客户端的响应速度。
附图说明
图1为本发明的实施例一的工作流调度系统结构示意图;
图2为本发明的实施例一的机构业务独立情况下的工作流调度系统结构示意图;
图3为本发明的实施例二的工作流调度方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例提供了一种工作流调度系统,系统包括至少一个工作流队列 服务器,每个所述工作流队列服务器对应一个或一个以上机构,存储对应的一个或一个以上机构的任务。所述机构指政府或企业的职能部门,如A跨国企业的中国办事处,B专利代理所的电学部等。
如任务量比较少、任务类型比较单一的几个机构可以共用一个工作流队列服务器,也可以为每个工作流队列服务器仅对应一个机构,实现不同机构拥有各自独立的专用工作流队列服务器,各工作流队列服务器负责对应机构的所述机构的任务的存储、管理和分配,图2即为机构业务独立情况下的工作流调度系统结构示意图,后面将详述其实施方式,在此不作赘述。
但是,为了防止任务的重复存储和分配,必须保证每个机构最多对应一个所述工作流队列服务器,不能出现一个机构对应两个或多个工作流队列服务器的情况。每个所述工作流队列服务器周期性地从数据库中装载符合机构条件的任务到本地,装载方式可为:数据库中所有任务可包含布尔型的装载标记字段用于标识该任务是否被队列服务器装载,当有工作流队列服务器提出任务装载请求时,通过它所对应的机构对数据库中所有未装载标记的任务进行一维检索,将所有符合条件的任务下载到所述工作流队列服务器本地,同时将这些任务的装载标记修改为已装载状态,所述任务在本地的存储方式可为内存、硬盘等,也可以存储在本地数据库中。所述工作流队列服务器周期性地从数据库中装载任务的过程可为同步也可为异步,同步为:所有的工作流队列服务器定期以相同间隔同时向数据库发起任务装载请求,该方法对数据库的吞吐能力要求较高,仅适用于小中型企业、任务不是太多或机构较少的大型企业;异步为:各工作流队列服务器依据各自任务量多少规定一个提取任务的时间间隔,周期性地向数据库中提取该机构的新任务,或者预设好提取任务的条件,当满足该条件时自动向数据库中发起任务提取请求,例如,满足本地任务剩余100时向数据库 提取任务或满足存在一种类型的任务数量小于20时向数据库提取任务。
进一步地,为了在响应客户端的任务请求时更快地检索出符合请求条件的任务,提高检索速度,可让每个工作流队列服务器将存储的任务分组,按机构和任务类型分组,将本地存储的所有任务按机构和任务类型散列在不同任务列表中。每个工作流队列服务器包含若干个任务列表,各工作流队列服务器包含的任务列表个数为所述工作流队列服务器所属机构数目与任务类型数目的乘积。
所述任务列表可为栈、队列、数组、类等多种类型,由于队列且有先进先出的特性,所述任务列表为队列可以保证相同优先级的任务先装载先分配,这样更具合理性,本实施例采用队列类型。
更进一步地,各工作流队列服务器对所述任务列表中的任务按照任务优先级从高到底进行排序。
进一步地,所述工作流调度系统还可包括工作流队列服务器布告板记录系统中工作流队列服务器的对应机构、地址等信息,用于客户端请求任务前通过所述任务的机构属性从该工作流队列服务器布告板查找所述机构对应的工作流队列服务器地址,通过远程服务调用协议调用所述工作流队列服务器进行任务请求。
所述远程服务调用协议可为RMI,Hessian,Burlap,Httpinvoker,web service等,其中,RMI是java语言本身提供的远程通讯协议,稳定高效,是EJB的基础,但它只能用于JAVA程序之间的通讯;Hessian和Burlap是caucho公司提供的开源协议,基于HTTP传输,服务端不用开防火墙端口,协议的规范公开,可以用于任意语言;Httpinvoker是SpringFramework提供的远程通讯协议,只能用于JAVA程序间的通讯,且服务端和客户端必须使用SpringFramework; Web service是连接异构系统或异构语言的首选协议,它使用SOAP形式通讯,可以用于任何语言,目前的许多开发工具对其的支持也很好。几种协议的通讯效率依次为:RMI>Httpinvoker>=Hessian>>Burlap>>web service。
本实施例采用RMI协议,每个工作流队列服务器对应一个RMI容器,占用一个端口,每个工作流队列服务器包含客户端访问接口和数据库服务器访问接口两组线程。
因为机构间的业务是天然分列的,固定性好,超大型企业不同机构分散在不同地区,业务基本独立,系统可设计为每个工作流队列服务器仅对应一个机构,实现不同机构拥有各自独立的专用工作流队列服务器。图2为本发明的实施例一的机构业务独立情况下的工作流调度系统结构示意图,各所述客户端均通过所述客户端的所述所属机构对应的工作流队列服务器调用任务。
进一步地,各所述客户端均维护一个到该客户端的所述所属机构的工作流队列服务器的连接池,用于减少连接开销。
当进行任务抢选分配时,即机构内部任一客户端需要通过提交任务类型申请机构内该类型的优先级最高任务时,所述机构对应的工作流队列服务器收到客户端请求后根据请求类型将所述类型的任务列表中的最优先任务返回所述客户端。
实施例二
图3为本发明的实施例二的工作流调度方法流程图,参见图3,本发明提供了一种工作流调度方法,包括:
S301、启动各个工作流队列服务器;
所述工作流队列服务器详见实施例一,在此不作赘述。
S302、各工作流队列服务器定期从数据库中装载对应机构的任务到本地;
所述装载方式的具体实现方式详见实施例一,在此不作赘述。
S303、客户端连接一个工作流队列服务器;
所述客户端通过所述连接池连接所述工作流对列服务器或者通过查询工作流队列服务器布告板查找所述工作流队列服务器地址,通过所述地址连接所述工作流队列服务器,具体方法参见实施例一,在此不作赘述。
S304、所述客户端请求调用所述工作流队列服务器中的任务;
具体方法参见实施例一,在此不作赘述。
S305、所述工作流队列服务器将符合请求条件的任务返回给所述客户端。
该步骤还包括如下情形:所述工作流队列服务器收到所述客户端请求后根据所述客户端请求中的机构和任务类型将所述机构和类型的任务列表中的最优先任务返回所述客户端。
本发明提供的工作流调度系统和工作流调度方法解决了超大型企业的任务流调度中数据库的计算开销和索引开销比较大的问题,把工作流中任务检索的计算从数据库转移到一个或多个服务器中,减轻了数据库的访问压力,降低了数据库索引空间占用,而且提高了客户端的响应速度。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
上述仅为本发明的较佳实施例及所运用技术原理,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。
Claims (8)
1.一种工作流队列服务器,其特征在于,用于存储一个或一个以上机构的任务,定期从数据库中装载符合所述机构条件的任务,当所述工作流队列服务器收到客户端请求时将存储的符合请求条件的任务返回给所述客户端;
其中,所述工作流队列服务器将存储的任务按机构和任务类型散列在不同任务队列中,所述工作流队列服务器对各所述任务队列中的任务按照任务优先级从高到低排序。
2.一种工作流调度系统,其特征在于,包括工作流队列服务器布告板和至少一个如权利要求1所述的工作流队列服务器,每个机构最多对应一个所述工作流队列服务器,所述工作流队列服务器布告板用于发布系统中工作流队列服务器的信息,所述信息包括工作流队列服务器的地址信息和所述工作流队列服务器对应的机构信息,使得所述系统能将作业任务按照任务所属机构散列到多个所述工作流队列服务器。
3.如权利要求2所述的工作流调度系统,其特征在于,各客户端应用系统均具有所属机构,均通过所述工作流队列服务器布告板查找所属机构对应的工作流队列服务器信息,然后通过查找到的工作流队列服务器调用任务。
4.如权利要求3所述的工作流调度系统,其特征在于,各所述客户端均维护一个到该客户端的所述所属机构的工作流队列服务器的连接池,用于减少连接开销。
5.如权利要求4所述的工作流调度系统,其特征在于,所述工作流队列服务器收到客户端请求后根据请求的机构和任务类型将所述机构和类型的任务队列中的最优先任务返回所述客户端。
6.一种工作流调度方法,其特征在于,包括:
S1、启动各个工作流队列服务器;
S2、各工作流队列服务器定期从数据库中装载对应机构的任务到本地;
S3、客户端连接一个工作流队列服务器;
S4、所述客户端请求调用所述工作流队列服务器中的任务;
S5、所述工作流队列服务器将符合请求条件的最优先的任务返回给所述客户端;
其中,所述各工作流队列服务器均为如权利要求1所述的工作流队列服务器。
7.如权利要求6所述的工作流调度方法,其特征在于,所述步骤S5包括,所述工作流队列服务器收到所述客户端请求后根据请求的机构和任务类型将所述机构和所述类型的任务队列中的最优先任务返回所述客户端。
8.如权利要求6所述的工作流调度方法,其特征在于,所述步骤S3具体为,客户端通过查询工作流队列服务器布告板查找所述工作流队列服务器地址,通过所述地址连接所述工作流队列服务器,其中所述工作流队列服务器布告板是存储在数据库中或每个工作流队列服务器中的数据表或文件,用于记录各个工作流队列服务器的信息,所述信息包括队列服务器的地址信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210228206.0A CN102761617B (zh) | 2012-07-02 | 2012-07-02 | 一种工作流队列服务器、工作流调度系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210228206.0A CN102761617B (zh) | 2012-07-02 | 2012-07-02 | 一种工作流队列服务器、工作流调度系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102761617A CN102761617A (zh) | 2012-10-31 |
CN102761617B true CN102761617B (zh) | 2015-06-24 |
Family
ID=47055935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210228206.0A Active CN102761617B (zh) | 2012-07-02 | 2012-07-02 | 一种工作流队列服务器、工作流调度系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102761617B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104765798B (zh) * | 2015-03-26 | 2018-08-07 | 深圳一科互联有限公司 | Mysql异地同步增强容错性的实现系统及实现方法 |
CN108090731B (zh) * | 2016-11-23 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及设备 |
CN107861811B (zh) * | 2017-10-24 | 2020-07-31 | 平安科技(深圳)有限公司 | 工作流系统中的任务信息传输方法、装置和计算机设备 |
CN111367868B (zh) * | 2018-12-26 | 2023-12-29 | 三六零科技集团有限公司 | 一种文件获取请求的处理方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446965A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 一种数据查询方法及系统 |
CN101620742A (zh) * | 2009-08-12 | 2010-01-06 | 国网电力科学研究院 | 一种用于三维渲染的实时数据处理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694709B (zh) * | 2009-09-27 | 2012-03-28 | 华中科技大学 | 一种面向服务的分布式工作流管理系统 |
CN102455934A (zh) * | 2010-10-25 | 2012-05-16 | 北大方正集团有限公司 | 工作流的调度方法和装置 |
CN102419833A (zh) * | 2011-09-23 | 2012-04-18 | 方欣科技有限公司 | 工作流引擎系统和工作流处理方法 |
CN102509197B (zh) * | 2011-12-01 | 2016-11-23 | 中国移动通信集团广东有限公司 | 一种工作流管理系统及工作流管理方法 |
-
2012
- 2012-07-02 CN CN201210228206.0A patent/CN102761617B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101446965A (zh) * | 2008-12-31 | 2009-06-03 | 中国建设银行股份有限公司 | 一种数据查询方法及系统 |
CN101620742A (zh) * | 2009-08-12 | 2010-01-06 | 国网电力科学研究院 | 一种用于三维渲染的实时数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102761617A (zh) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422853B2 (en) | Dynamic tree determination for data processing | |
US9996593B1 (en) | Parallel processing framework | |
US8200705B2 (en) | Method and apparatus for applying database partitioning in a multi-tenancy scenario | |
US8543621B2 (en) | Database partitioning by virtual partitions | |
CN101354726B (zh) | 一种机群文件系统的内存元数据管理方法 | |
CN106170016A (zh) | 一种处理高并发数据请求的方法和系统 | |
CN105045607A (zh) | 一种实现多种大数据计算框架统一接口的方法 | |
CN105933376A (zh) | 一种数据操作方法,服务器及存储系统 | |
CN104111936B (zh) | 数据查询方法和系统 | |
CN103412884B (zh) | 一种异构存储介质下嵌入式数据库的管理方法 | |
CN103455526A (zh) | 一种etl数据处理方法、装置及系统 | |
CN101937474A (zh) | 海量数据查询方法及设备 | |
CN101405728A (zh) | 具有动态加载能力的关系数据库架构 | |
CN102761617B (zh) | 一种工作流队列服务器、工作流调度系统及其方法 | |
CN104407879A (zh) | 一种电网时序大数据并行加载方法 | |
CN107180113A (zh) | 一种大数据检索平台 | |
CN102402586A (zh) | 一种分布式数据存储方法 | |
CN109635189A (zh) | 一种信息搜索方法、装置、终端设备及存储介质 | |
CN111753019B (zh) | 一种应用于数据仓库的数据分区方法和装置 | |
CN111461583B (zh) | 一种库存盘点方法和装置 | |
CN110309229A (zh) | 分布式系统的数据处理方法和分布式系统 | |
EP2662783A1 (en) | Data archiving approach leveraging database layer functionality | |
CN106528051B (zh) | 基于MongoDB的大数据队列堆栈操作的方法 | |
JP5464017B2 (ja) | 分散メモリデータベースシステム、データベースサーバ、データ処理方法およびそのプログラム | |
Costa et al. | Towards an adaptive and distributed architecture for managing workflow provenance data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 100089 Beijing, West Third Ring Road North, No. 25, green building, room 701, Haidian District Applicant after: The north, capital infotech share company limited Address before: 100089 Beijing, West Third Ring Road North, No. 25, green building, room 701, Haidian District Applicant before: Beijing Jing North Information Technology Co.,Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: BEIJING NORTH KING INFORMATION TECHNOLOGY CO., LTD. TO: NORTHKING INFORMATION TECHNOLOGY CO., LTD. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |