CN104376086B - 数据处理方法和装置 - Google Patents
数据处理方法和装置 Download PDFInfo
- Publication number
- CN104376086B CN104376086B CN201410664691.5A CN201410664691A CN104376086B CN 104376086 B CN104376086 B CN 104376086B CN 201410664691 A CN201410664691 A CN 201410664691A CN 104376086 B CN104376086 B CN 104376086B
- Authority
- CN
- China
- Prior art keywords
- data
- thread
- state
- database
- mode
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据处理方法和装置,包括:预先设置线程启动周期;根据线程启动周期,启动线程;线程获取当前数据库中数据的数据状态,数据状态包括初始状态、待处理状态和已处理状态;线程获取数据库中数据状态为初始状态的数据,并将数据的数据状态从初始状态更新为待处理状态;线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将数据的数据状态从待处理状态更新为已处理状态。本发明能够保证数据被多线程依次不重复处理,并提高数据处理的效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法和装置。
背景技术
数据的存储向大数据(Big data)方向发展,大数据的爆炸式增长在大容量、多样性和高增速方面,全面考验着现代企业的数据处理和分析能力,同时,也为企业带来了获取更丰富、更深入和更准确地洞察市场行为的大量机会。
目前,由于多用户操作应用系统而产生的大量数据,无论出于性能方面的考虑,还是分类方面的规划,在系统获取到用户的数据后,都会通过相应的程序进行数据再处理。普遍采用的数据处理方式是通过单线程处理。单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行。单线程相对的系统稳定、扩展性极强、软件丰富,非常适合点对点的服务。但是在大量数据存在时,单线程效率比较低,更难以实现数据的实时处理。
发明内容
为了解决上述技术问题,本发明提供了一种数据处理方法和装置,能够提高数据处理的效率。
为了达到本发明目的,本发明提供了一种数据处理方法,包括:预先设置线程启动周期;根据所述线程启动周期,启动线程;所述线程获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;所述线程获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;所述线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态。
进一步地,所述预先设置线程启动周期包括:通过java语言的定时代码设置线程启动周期;所述方法还包括:预先设置数据库的数据量阈值范围;如果当前数据库的数据量大于所述数据量阈值范围上限时,减小线程启动周期;所述当前数据库的数据量小于所述数据量阈值范围下限时,增大线程启动周期。
进一步地,所述线程获取当前数据库中数据的数据状态之前还包括:预先为数据扩展数据状态的属性;所述数据状态通过数据、字母和字符中的一个或任意组合进行标识。
进一步地,所述当前数据库中的数据根据进入数据库的时间进行排序;所述线程获取数据库中数据状态为初始状态的数据包括:记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
进一步地,所述将所述数据的数据状态从待处理状态更新为已处理状态之后还包括:所述线程处理完成获取的所有数据后,释放所述线程所占的资源。
一种用于数据处理装置,包括:设置模块,用于预先设置线程启动周期;启动模块,用于根据所述线程启动周期,启动线程;线程,用于获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态。
进一步地,所述设置模块,具体用于通过java语言的定时代码设置线程启动周期;所述设置模块,还用于预先设置数据库的数据量阈值范围;所述装置还包括:调整模块,用于如果当前数据库的数据量大于所述数据量阈值范围上限时,减小线程启动周期;所述当前数据库的数据量小于所述数据量阈值范围下限时,增大线程启动周期。
进一步地,所述装置还包括:扩展模块,用于预先为数据扩展数据状态的属性,其中所述数据状态通过数据、字母和字符中的一个或任意组合进行标识。
进一步地,所述当前数据库中的数据根据进入数据库的时间进行排序;所述线程获取数据库中数据状态为初始状态的数据,具体为:所述线程获取数据库中数据状态为初始状态的数据包括:记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
进一步地,所述线程还用于处理完成获取的所有数据后,释放所述线程所占的资源。
与现有技术相比,本发明包括:预先设置线程启动周期;根据所述线程启动周期,启动线程;所述线程获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;所述线程获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;所述线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态。本发明通过对数据库中的数据增加数据状态属性,新启动的线程将只会获取上个获取时间点后新进入数据库数据,并进行数据状态的更新,因此不同的线程只处理本身更新数据状态的数据,对于没有更新过数据状态的数据,不相互竞争,从而可以保证数据的被多线程依次不重复处理,并提高数据处理的效率。
附图说明
图1是本发明数据处理方法的流程示意图。
图2是本发明数据处理装置的结构示意图。
具体实施方式
下面结合附图对本发明进行进一步的详细说明。通过足够详细的描述这些实施示例,使得本领域技术人员能够实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。
图1是本发明数据处理方法的流程示意图,如图1所示,包括:
步骤11,预先设置线程启动周期。
在本步骤中,可以通过设定程序,例如java语言的定时代码,设置线程启动周期。
线程启动周期可以根据数据库的数据量的大小进行调整。具体地,预先设置数据库的数据量阈值范围,如果当前数据库的数据量大于数据量阈值范围上限时,减小线程启动周期;当前数据库的数据量小于数据量阈值范围下限时,增大线程启动周期。
步骤12,根据线程启动周期,启动线程。
在本步骤中,根据线程启动周期,例如每隔几秒或者几分钟,启动一个线程。例如:每20秒启动1个线程,如果20秒内,本次启动的线程已经完成工作,该线程停止;如果20秒内,本次启动的线程没有完成工作,该线程将和20秒钟之后新启动的线程同时工作,形成多线程。
步骤13,该线程获取当前数据库中数据的数据状态,该数据状态包括初始状态、待处理状态和已处理状态。
在本步骤之前,预先为数据库中的数据扩展数据状态的属性,该数据状态包括初始状态、待处理状态和已处理状态,其中,数据进入数据库中设置为初始状态;启动线程后,该线程将要处理的数据设置为待处理状态;该线程对处理完成的数据设置为已处理状态。
数据状态为初始状态、待处理状态和已处理状态可以通过数据、字母或字符等来标识,例如,将初始状态设置为1,即数据状态为1时,该数据的数据状态为初始状态。
步骤14,该线程获取数据库中数据状态为初始状态的数据,并将该数据的数据状态从初始状态更新为待处理状态。
在本步骤中,数据库中不断地会有新数据进入,进入数据库中的新数据的数据状态为初始状态。
根据线程启动周期启动线程,该线程获取数据库中数据状态为初始状态的数据,并将该数据的数据状态从初始状态更新为待处理状态,即该线程将只需要处理本身获取且更新数据状态的数据。
数据库中的数据可以根据进入数据库的时间进行排序,所以获取数据库中数据状态为初始状态的数据,具体可以是记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
步骤15,该线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将数据的数据状态从待处理状态更新为已处理状态。
在本步骤中,该线程对获取的数据状态为待处理状态的数据进行处理,在此过程中,并不能删除数据库中的数据,只需对处理完成的数据进行数据状态的更改,从待处理状态更新为已处理状态。
步骤16,该线程处理完成获取的所有数据后,释放该线程所占的资源。
本发明通过对数据库中的数据增加数据状态属性,新启动的线程将只会获取上个获取时间点后新进入数据库数据,并进行数据状态的更新,因此不同的线程只处理本身更新数据状态的数据,对于没有更新过数据状态的数据,不相互竞争,从而可以保证数据的被多线程依次不重复处理,提高数据处理的效率。
图2是本发明数据处理装置的结构示意图,如图2所示,包括:
设置模块,用于预先设置线程启动周期和预先设置数据库的数据量阈值范围。
启动模块,用于根据线程启动周期,启动线程。
线程,用于启动后,获取当前数据库中数据的数据状态为初始状态的数据,并将该数据的数据状态从初始状态更新为待处理状态;对获取的数据进行处理,并在处理完成后,将数据的数据状态从待处理状态更新为已处理状态;处理完成获取的所有数据后,释放该线程所占的资源。
该装置还包括:
调整模块,用于如果当前数据库的数据量大于数据量阈值范围上限时,减小线程启动周期;当前数据库的数据量小于数据量阈值范围下限时,增大线程启动周期。
扩展模块,用于预先为数据扩展数据状态的属性,其中数据状态可以通过数据、字母和字符中的一个或任意组合进行标识。
本发明的数据处理装置是和数据处理方法对应,因此,数据处理装置具体的实现细节可参看数据处理方法,在此不赘述。
本发明通过对数据库中的数据增加数据状态属性,新启动的线程将只会获取上个获取时间点后新进入数据库数据,并进行数据状态的更新,因此不同的线程只处理本身更新数据状态的数据,对于没有更新过数据状态的数据,不相互竞争,从而可以保证数据的被多线程依次不重复处理,提高数据处理的效率。
应当理解,虽然本说明书根据实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用于限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据处理方法,其特征在于,包括:预先设置线程启动周期;
根据所述线程启动周期,启动线程;
所述线程获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;
所述线程获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;
所述线程对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态;
其中,所述预先设置线程启动周期包括:
通过java语言的定时代码设置线程启动周期;
所述方法还包括:预先设置数据库的数据量阈值范围;
如果当前数据库的数据量大于所述数据量阈值范围上限时,减小线程启动周期;所述当前数据库的数据量小于所述数据量阈值范围下限时,增大线程启动周期。
2.根据权利要求1所述的方法,其特征在于,所述线程获取当前数据库中数据的数据状态之前还包括:
预先为数据扩展数据状态的属性;
所述数据状态通过数据或字母或字符进行标识。
3.根据权利要求1所述的方法,其特征在于,所述当前数据库中的数据根据进入数据库的时间进行排序;
所述线程获取数据库中数据状态为初始状态的数据包括:记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
4.根据权利要求1~3中任一项所述的方法,其特征在于,所述将所述数据的数据状态从待处理状态更新为已处理状态之后还包括:
所述线程处理完成获取的所有数据后,释放所述线程所占的资源。
5.一种数据处理装置,其特征在于,包括:
设置模块,用于预先设置线程启动周期;
启动模块,用于根据所述线程启动周期,启动线程;
线程,用于获取当前数据库中数据的数据状态,所述数据状态包括初始状态、待处理状态和已处理状态;获取数据库中数据状态为初始状态的数据,并将所述数据的数据状态从初始状态更新为待处理状态;对获取的数据状态为待处理状态的数据进行处理,并在处理完成后,将所述数据的数据状态从待处理状态更新为已处理状态;
所述设置模块,具体用于通过java语言的定时代码设置线程启动周期;
所述设置模块,还用于预先设置数据库的数据量阈值范围;
所述装置还包括:调整模块,用于如果当前数据库的数据量大于所述数据量阈值范围上限时,减小线程启动周期;所述当前数据库的数据量小于所述数据量阈值范围下限时,增大线程启动周期。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:扩展模块,用于预先为数据扩展数据状态的属性,其中所述数据状态通过数据或字母或字符进行标识。
7.根据权利要求5所述的装置,其特征在于,所述当前数据库中的数据根据进入数据库的时间进行排序;
所述线程获取数据库中数据状态为初始状态的数据,具体为:所述线程获取数据库中数据状态为初始状态的数据包括:记录每次获取数据的时间点,根据数据的进入数据库的时间,获取上一获取时间点之后的数据。
8.根据权利要求5~7中任一项所述的装置,其特征在于,所述线程还用于处理完成获取的所有数据后,释放所述线程所占的资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410664691.5A CN104376086B (zh) | 2014-11-19 | 2014-11-19 | 数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410664691.5A CN104376086B (zh) | 2014-11-19 | 2014-11-19 | 数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104376086A CN104376086A (zh) | 2015-02-25 |
CN104376086B true CN104376086B (zh) | 2018-09-11 |
Family
ID=52554993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410664691.5A Active CN104376086B (zh) | 2014-11-19 | 2014-11-19 | 数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104376086B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105700938B (zh) * | 2016-01-15 | 2019-02-19 | 浪潮通用软件有限公司 | 一种多线程处理数据的方法及装置 |
CN106445703A (zh) * | 2016-09-22 | 2017-02-22 | 济南浪潮高新科技投资发展有限公司 | 一种解决数据传输中防并发脏读方法 |
CN109408286A (zh) * | 2018-09-17 | 2019-03-01 | 北京京东金融科技控股有限公司 | 数据处理方法、装置、系统、计算机可读存储介质 |
CN112163002A (zh) * | 2020-09-28 | 2021-01-01 | 广东巴金斯科技有限公司 | 一种跨境电商通关数据的处理方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702676A (zh) * | 2009-11-23 | 2010-05-05 | 深圳华为通信技术有限公司 | 数据缓冲处理的方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100725066B1 (ko) * | 2005-08-02 | 2007-06-08 | 한미아이티 주식회사 | 다수의 클라이언트와의 데이터 통신을 위한 시스템 서버 및데이터 처리 방법 |
CN101950301A (zh) * | 2010-09-26 | 2011-01-19 | 北京飞天诚信科技有限公司 | 数据处理的方法及装置 |
-
2014
- 2014-11-19 CN CN201410664691.5A patent/CN104376086B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702676A (zh) * | 2009-11-23 | 2010-05-05 | 深圳华为通信技术有限公司 | 数据缓冲处理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104376086A (zh) | 2015-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528395B (zh) | 测试用例的生成方法及装置 | |
CN104376086B (zh) | 数据处理方法和装置 | |
US20160147882A1 (en) | Object Search Method and Apparatus | |
JP2017188137A5 (zh) | ||
EP2784711A3 (en) | Terminal device and terminal control program | |
CN106412072B (zh) | 一种业务处理方法及装置 | |
EP2919165A3 (en) | Method and device for clustering | |
EP2955642A3 (en) | Method and apparatus for concurrent access of mixed services | |
EP2963546A1 (en) | Method for achieving software development transaction and electronic device | |
CN105653647B (zh) | Sql语句的信息采集方法及系统 | |
CN110647459A (zh) | 应用测试方法及装置 | |
CN110932929B (zh) | Ccsds体制卫星遥测包分类提取方法、系统及介质 | |
CN104715076B (zh) | 一种多线程数据处理方法及装置 | |
CN106779582B (zh) | 一种tws流程配置方法及装置 | |
CN103955498A (zh) | 一种搜索引擎创建方法及装置 | |
CN105447064B (zh) | 一种电子地图数据制作及其使用方法和装置 | |
CN104778252A (zh) | 索引的存储方法和装置 | |
CN104794179A (zh) | 一种基于知识树的视频快速标引方法及装置 | |
IN2015DE00970A (zh) | ||
CN102332048B (zh) | 集成电路设计过程中单节点并行自动修复保持时间违例的方法 | |
CN103530742B (zh) | 提高排程运算速度的方法及装置 | |
CN104199096B (zh) | 一种地震数据体层位面提取方法及装置 | |
CN104185032A (zh) | 一种视频识别方法及系统 | |
JP2014134860A5 (zh) | ||
CN109408538B (zh) | 云平台中自动发放云组件实现大规模融合查询方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |