CN107291534A - 异步任务并发处理方法和系统 - Google Patents
异步任务并发处理方法和系统 Download PDFInfo
- Publication number
- CN107291534A CN107291534A CN201610226710.5A CN201610226710A CN107291534A CN 107291534 A CN107291534 A CN 107291534A CN 201610226710 A CN201610226710 A CN 201610226710A CN 107291534 A CN107291534 A CN 107291534A
- Authority
- CN
- China
- Prior art keywords
- task
- identification number
- thread
- server
- numbering
- 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
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种异步任务并发处理方法,所述方法包括以下步骤:生成任务,将生成的任务加入任务池中,并为每个任务分配一个随机的编号,所述编号为1‑N的整数;采用多个线程并行提取所述任务池中的任务,每个线程对应一个标识号,所述标识号也为1‑N的整数,每个线程并行提取所述任务池中编号与标识号相同的任务并处理提取的任务;其中,N为正整数且小于任务总数。采用该方法,能提高任务处理效率,从而提高后台处理总能力。此外,还提供了一种异步任务并发处理系统。
Description
技术领域
本发明涉及数据库技术领域,特别是涉及一种异步任务并发处理方法和系统。
背景技术
数据库技术中为了提高任务处理效率,通常会基于数据库后台进行异步任务处理。通常,基于数据库后台异步任务为了防重复处理,采用了同一事务中锁定某些任务后修改任务状态为处理中,再释放数据库行锁方案。这样,多任务并发处理时,由于任务表中某些任务被锁定了,使得其它线程必须等待解锁后才能处理任务,因此在数据库中会出现大量锁等待,影响任务处理效率和数据库整体性能,并发越大,则影响越大。
发明内容
基于此,有必要针对上述技术问题,提供一种能提高任务处理效率的异步任务并发处理方法和系统。
一种异步任务并发处理方法,所述方法包括以下步骤:
生成任务,将生成的任务加入任务池中,并为每个任务分配一个随机的编号,所述编号为1-N的整数;
采用多个线程并行提取所述任务池中的任务,每个线程对应一个标识号,所述标识号也为1-N的整数,每个线程并行提取所述任务池中编号与标识号相同的任务并处理提取的任务;
其中,N为正整数且小于任务总数。
在其中一个实施例中,N为服务器个数;
在所述生成任务的步骤之前,还包括:
设置服务器基表,所述服务器基表中存储了服务器IP地址和对应的标识号;
所述采用多个线程并行提取所述任务池中的任务的步骤包括:
根据服务器IP地址查找对应的标识号,提取所述编号与查找到的标识号相同的任务。
在其中一个实施例中,每个服务器运行一个线程。
在其中一个实施例中,所述采用多个线程并行提取所述任务池中的任务的步骤还包括:将提取的任务进行锁定。
在其中一个实施例中,所述N为后台并发线程数,每个线程对应的一个标识号为随机给线程提取的一个1-N之间的整数。
一种异步任务并发处理系统,所述系统包括:
任务生成模块,用于生成任务,将生成的任务加入任务池中,并为每个任务分配一个随机的编号,所述编号为1-N的整数;
任务分配模块,用于采用多个线程并行提取所述任务池中的任务,每个线程对应一个标识号,所述标识号也为1-N的整数,每个线程并行提取所述任务池中编号与标识号相同的任务并处理提取的任务;
其中,N为正整数且小于任务总数。
在其中一个实施例中,N为服务器个数;
所述系统还包括:设置模块,用于设置服务器基表,所述服务器基表中存储了服务器IP地址和对应的标识号;
所述任务分配模块用于根据服务器IP地址查找对应的标识号,提取所述编号与查找到的标识号相同的任务。
在其中一个实施例中,每个服务器运行一个线程。
在其中一个实施例中,所述任务分配模块还用于在提取出任务后将任务进行锁定。
在其中一个实施例中,所述N为后台并发线程数,每个线程对应的一个标识号为随机给线程提取的一个1-N之间的整数。
上述异步任务并发处理方法和系统,通过为每个任务分配一个随机的编号,在采用多个线程并行提取任务池中的任务时,每个线程对应一个标识号,每个线程并行提取任务池中编号与标识号相同的任务并处理提取的任务。这样,将任务实际上分成了多份,多份任务并行处理,且每个线程处理的是编号与自身对应的标识号相同的任务,避免了大量锁等待,因此能够提高任务处理效率。
附图说明
图1为一个实施例中异步任务并发处理方法的流程图;
图2为另一个实施例中异步任务并发处理方法的流程图;
图3为图2中的异步任务并发处理方法的原理图;
图4为又一个实施例中异步任务并发处理方法的流程图;
图5为图4中的异步任务并发处理方法的原理图;
图6为一个实施例中异步任务并发处理系统的结构框图;
图7为另一个实施例中异步任务并发处理系统的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,在一个实施例中,提供了一种异步任务并发处理方法,该方法包括以下步骤:
步骤102,生成任务,将生成的任务加入任务池中,并为每个任务分配一个随机的编号,该编号为1-N的整数。
本实施例中,N为正整数且小于任务总数。更为优先的,N为服务器个数或者后台并发线程数。在生成任务时,为每个任务分配一个随机的编号,该编号为小于N的正整数。任务在任务池中对应编号存储。
步骤104,采用多个线程并行提取任务池中的任务,每个线程对应一个标识号,该标识号也为1-N的整数,每个线程并行提取任务池中编号与标识号相同的任务并处理提取的任务。
本实施例中,采用多个并发的线程提取任务进行并行处理,每个线程都对应有一个标识号,该标识号也为小于N的正整数。每个线程在提取任务池中的任务时,只提取任务的编号与标识号相同的任务并处理提取的任务。
这样给每个任务分配了一个随机的编号后,实际上将大量任务分成了多组,多组任务能够并行处理,且每个线程处理的是编号与自身对应的标识号相同的任务,避免了大量锁等待,因此能够提高任务处理效率。
在一个实施例中,N为服务器个数;在生成任务的步骤之前,还包括:设置服务器基表,该服务器基表中存储了服务器IP地址和对应的标识号;则采用多个线程并行提取任务池中的任务的步骤包括:根据服务器IP地址查找对应的标识号,提取编号与查找到的标识号相同的任务。
本实施例中,在提取任务时进行关联表查询,从而可以根据服务器基表中的服务器IP地址查询到对应的标识号,进而查询任务表中对应编号与标识号相同的任务。
进一步的,每个服务器运行一个线程。
本实施例中,如图2所示,异步任务并发处理方法包括:
步骤202,生成任务,将生成的任务加入任务池中,并为每个任务分配一个随机的编号,该编号为1-N的整数。
步骤204,服务器提取任务池中的任务,每个服务器只提取任务池中编号与服务器对应的标识号相同的任务并处理提取的任务。
本实施例中,每个服务器运行一个线程。设置一张服务器基表存储服务器IP地址和对应的标识号(ID号),标识号为1-N之间的整数,其中N为服务器的个数。在取任务池中的任务时,根据服务器IP地址可以查找到对应的标识号,进而每台服务器后台异步任务只取编号与标识号相同的任务。
结合图3所示,假设N为3,即有3台服务器,生成任务时,为每个任务分配一个随机的编号,编号则为1或2或3,即相当于把任务分成了3份。相应的,服务器对应的标识号分别为1、2和3。服务器只取编号与标识号相同的任务进行处理。如图3所示,服务器1处理编号为1的任务,服务器2处理编号为2的任务,服务器3处理编号为3的任务。这样,多个任务并行同时处理,即某一编号的任务存在锁等待,也不会影响其它编号的任务的处理。
本实施例中,由于每台服务器只取编号与标识号相同的任务进行处理,相当于把任务分成了多份,多份任务并行同时处理,由于不同编号的任务可以同时进行处理,避免了不同编号的任务之间存在大量锁等待的问题,从而提高了任务处理效率,提高了后台任务处理的总能力。
在另一个实施例中,N为后台并发线程数,每个线程对应的一个标识号为随机给线程提取的一个1-N之间的整数。
具体的,如图4所示,本实施例中,异步任务并发处理方法包括:
步骤402,生成任务,为每个任务分配一个随机的编号,且编号为1-N的整数,N为预设的可启动的后台并发线程数,将生成的任务加入任务池中。
步骤404,提取任务池中的任务,随机为线程分配一个标识号,该标识号为1-N之间的整数,每个线程只取编号与标识号相同的任务进行处理。
本实施例中,一台服务器可能运行多个线程,预先设定后台并发线程数,并且在取任务时,随机为每个线程分配一个标识号,线程只取编号与标识号相同的任务进行处理。
结合图5所示,服务器个数仍为3,一台服务器可能运行多个线程,假设线程数为6,则为任务随机分配的编号为1-6之间的正整数,服务器中的线程去取任务时,随机为线程分配一个标识号,比如,为服务器1中的线程随机分配的标识号为2,则该线程取编号为2的任务进行处理。相对于图3所示的实施例来说,该实施例中,多条服务器仍并行处理任务,只不过线程的标识号与任务的编号对应。这样,多任务并行同时处理,某一个编号的任务存在锁等待,不会影响其它编号的任务的处理。
本实施例中,由于每个线程只取编号与标识号相同的任务进行处理,多份任务并行同时处理,避免了不同编号的任务存在大量锁等待的问题,从而提高了任务处理效率,提高了后台任务处理的总能力。
在一个实施例中,采用多个线程并行提取任务池中的任务的步骤还包括:将提取的任务进行锁定。本实施例中,任务被提取出后,可将任务进行锁定,待处理完后进行解锁。如上所述,某一个编号的任务存在锁等待,不会影响其它编号的任务的处理,从而一定程度上避免了大量锁等待的问题,提高了任务处理效率。
如图6所示,在一个实施例中,提供了一种异步任务并发处理系统,该系统包括:
任务生成模块602,用于生成任务,将生成的任务加入任务池中,并为每个任务分配一个随机的编号,该编号为1-N的整数。
任务分配模块604,用于采用多个线程并行提取任务池中的任务,每个线程对应一个标识号,该标识号也为1-N的整数,每个线程并行提取任务池中编号与标识号相同的任务并处理提取的任务;其中,N为正整数且小于任务总数。
在一个实施例中,如图7所示,提供的异步任务并发处理系统还包括:设置模块601,用于设置服务器基表,该服务器基表中存储了服务器IP地址和对应的标识号。本实施例中,任务分配模块604用于根据服务器IP地址查找对应的标识号,提取编号与查找到的标识号相同的任务。
进一步的,在一个实施例中,每个服务器运行一个线程。
在另一个实施例中,N为后台并发线程数,每个线程对应的一个标识号为随机给线程提取的一个1-N之间的整数。
在一个实施例中,任务分配模块604用于在提取出任务后将任务进行锁定。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种异步任务并发处理方法,其特征在于,所述方法包括以下步骤:
生成任务,将生成的任务加入任务池中,并为每个任务分配一个随机的编号,所述编号为1-N的整数;
采用多个线程并行提取所述任务池中的任务,每个线程对应一个标识号,所述标识号也为1-N的整数,每个线程并行提取所述任务池中编号与标识号相同的任务并处理提取的任务;
其中,N为正整数且小于任务总数。
2.根据权利要求1所述的方法,其特征在于,N为服务器个数;
在所述生成任务的步骤之前,还包括:
设置服务器基表,所述服务器基表中存储了服务器IP地址和对应的标识号;
所述采用多个线程并行提取所述任务池中的任务的步骤包括:
根据服务器IP地址查找对应的标识号,提取所述编号与查找到的标识号相同的任务。
3.根据权利要求2所述的方法,其特征在于,每个服务器运行一个线程。
4.根据权利要求1所述的方法,其特征在于,所述采用多个线程并行提取所述任务池中的任务的步骤还包括:将提取的任务进行锁定。
5.根据权利要求1所述的方法,其特征在于,所述N为后台并发线程数,每个线程对应的一个标识号为随机给线程提取的一个1-N之间的整数。
6.一种异步任务并发处理系统,其特征在于,所述系统包括:
任务生成模块,用于生成任务,将生成的任务加入任务池中,并为每个任务分配一个随机的编号,所述编号为1-N的整数;
任务分配模块,用于采用多个线程并行提取所述任务池中的任务,每个线程对应一个标识号,所述标识号也为1-N的整数,每个线程并行提取所述任务池中编号与标识号相同的任务并处理提取的任务;
其中,N为正整数且小于任务总数。
7.根据权利要求6所述的系统,其特征在于,N为服务器个数;
所述系统还包括:设置模块,用于设置服务器基表,所述服务器基表中存储了服务器IP地址和对应的标识号;
所述任务分配模块用于根据服务器IP地址查找对应的标识号,提取所述编号与查找到的标识号相同的任务。
8.根据权利要求7所述的系统,其特征在于,每个服务器运行一个线程。
9.根据权利要求6所述的系统,其特征在于,所述任务分配模块还用于在提取出任务后将任务进行锁定。
10.根据权利要求6所述的系统,其特征在于,所述N为后台并发线程数,每个线程对应的一个标识号为随机给线程提取的一个1-N之间的整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610226710.5A CN107291534A (zh) | 2016-04-13 | 2016-04-13 | 异步任务并发处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610226710.5A CN107291534A (zh) | 2016-04-13 | 2016-04-13 | 异步任务并发处理方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107291534A true CN107291534A (zh) | 2017-10-24 |
Family
ID=60093066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610226710.5A Pending CN107291534A (zh) | 2016-04-13 | 2016-04-13 | 异步任务并发处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291534A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284190A (zh) * | 2018-09-20 | 2019-01-29 | 中链科技有限公司 | 一种任务处理方法及装置 |
CN110377407A (zh) * | 2019-06-19 | 2019-10-25 | 北京威努特技术有限公司 | 一种扫描任务调度方法、装置、存储介质及设备 |
CN110569124A (zh) * | 2019-08-15 | 2019-12-13 | 中国平安财产保险股份有限公司 | 一种任务分配方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090308A (zh) * | 2007-07-06 | 2007-12-19 | 华为技术有限公司 | 一种心跳通信方法与系统 |
CN101599027A (zh) * | 2009-06-30 | 2009-12-09 | 中兴通讯股份有限公司 | 一种线程池管理方法及其系统 |
US20110078352A1 (en) * | 2009-09-30 | 2011-03-31 | International Business Machines Corporation | Administering The Polling Of A Number Of Devices For Device Status |
CN104089697A (zh) * | 2014-07-08 | 2014-10-08 | 安徽常春藤光电智能科技有限公司 | 一种基于线程池并发技术的实时在线的视觉振动测量方法 |
-
2016
- 2016-04-13 CN CN201610226710.5A patent/CN107291534A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090308A (zh) * | 2007-07-06 | 2007-12-19 | 华为技术有限公司 | 一种心跳通信方法与系统 |
CN101599027A (zh) * | 2009-06-30 | 2009-12-09 | 中兴通讯股份有限公司 | 一种线程池管理方法及其系统 |
US20110078352A1 (en) * | 2009-09-30 | 2011-03-31 | International Business Machines Corporation | Administering The Polling Of A Number Of Devices For Device Status |
CN104089697A (zh) * | 2014-07-08 | 2014-10-08 | 安徽常春藤光电智能科技有限公司 | 一种基于线程池并发技术的实时在线的视觉振动测量方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284190A (zh) * | 2018-09-20 | 2019-01-29 | 中链科技有限公司 | 一种任务处理方法及装置 |
CN110377407A (zh) * | 2019-06-19 | 2019-10-25 | 北京威努特技术有限公司 | 一种扫描任务调度方法、装置、存储介质及设备 |
CN110569124A (zh) * | 2019-08-15 | 2019-12-13 | 中国平安财产保险股份有限公司 | 一种任务分配方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104182405B (zh) | 一种连接查询方法及装置 | |
CN104615736B (zh) | 基于数据库的大数据快速解析存储方法 | |
CN105574052A (zh) | 数据库查询方法及装置 | |
EP3513333B1 (en) | Managing transactions requesting non-existent index keys in database systems | |
US8892566B2 (en) | Creating indexes for databases | |
US20140122484A1 (en) | System and Method for Flexible Distributed Massively Parallel Processing (MPP) Database | |
CN104111936A (zh) | 数据查询方法和系统 | |
CN107291534A (zh) | 异步任务并发处理方法和系统 | |
CN105100050A (zh) | 用户权限管理方法及系统 | |
CN104423982B (zh) | 请求的处理方法和处理设备 | |
CN104238999A (zh) | 一种基于水平分区分布式数据库的任务调度方法及装置 | |
CN108376156A (zh) | 创建数据库索引的方法、装置、服务器及存储介质 | |
CN106789309A (zh) | 一种基于olt设备的业务配置文件迁移方法 | |
CN103678619B (zh) | 数据库索引处理方法和装置 | |
CN107070645A (zh) | 比较数据表的数据的方法和系统 | |
Garcia et al. | Group technology in production management: the short horizon planning level | |
CN107562762A (zh) | 数据索引构建方法及装置 | |
CN102209016A (zh) | 一种数据处理方法、装置和数据处理系统 | |
CN107239568A (zh) | 分布式索引实现方法及装置 | |
CN107168788A (zh) | 分布式系统中资源的调度方法以及装置 | |
CN101552739A (zh) | 一种网络服务流程实例生命周期管理的方法及系统 | |
US11086689B2 (en) | Method for automatically and dynamically assigning the responsibility for tasks to the available computing components in a highly distributed data-processing system | |
CN102521043A (zh) | 一种任务处理方法及应用系统 | |
CN101515874B (zh) | 网络服务器的访问控制方法及控制系统 | |
WO2012092173A1 (en) | Work file recycling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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: 20171024 |