CN110413428A - 对账数据的处理方法、电子设备及存储介质 - Google Patents
对账数据的处理方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN110413428A CN110413428A CN201910720163.XA CN201910720163A CN110413428A CN 110413428 A CN110413428 A CN 110413428A CN 201910720163 A CN201910720163 A CN 201910720163A CN 110413428 A CN110413428 A CN 110413428A
- Authority
- CN
- China
- Prior art keywords
- reconciliation
- data
- thread
- state
- read
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 29
- 230000005856 abnormality Effects 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 230000001360 synchronised effect Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 230000005055 memory storage Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 238000002360 preparation method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
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/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/12—Accounting
- G06Q40/125—Finance or payroll
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种对账数据的处理方法、电子设备及存储介质,该方法包括:通过第一线程读取待对账数据,加入到数据队列中;通过至少两个第二线程从所述数据队列读取所述待对账数据,加入到对账临时表中;基于所述对账临时表进行对账处理。有效缩短对账数据的准备时间,提高对账处理效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种对账数据的处理方法、电子设备及存储介质。
背景技术
随着计算机技术及业务的快速发展,企业通过建立交易平台实现了各方面的交易完成。随着业务的不断拓展,企业往往会发展多个交易平台或子平台。为了管理账务,通常需要进行对账。
现有技术中,通常从数据源读取并存储待对账数据,并基于待对账数据生成对账文件及装载对账文件,导致对账的数据准备阶段所用时间较长。
因此,如何有效提高对账效率,成为亟需解决的技术问题。
发明内容
本申请提供一种对账数据的处理方法、电子设备及存储介质,以解决现有技术对账效率低等缺陷。
本申请第一个方面提供一种对账数据的处理方法,包括:
通过第一线程读取待对账数据,加入到数据队列中;
通过至少两个第二线程从所述数据队列读取所述待对账数据,加入到对账临时表中;
基于所述对账临时表进行对账处理。
可选地,所述通过第一线程读取待对账数据,包括:
通过第一线程从待对账数据所在的数据库读取所述待对账数据,所述待对账数据包括与对账相关的预设字段。
可选地,所述通过第一线程读取待对账数据,包括:
通过所述第一线程使用游标读取待对账数据。
可选地,所述方法还包括:
在通过第一线程读取待对账数据时,若发生异常,则通过所述第一线程基于同步方法将状态类的状态设置为异常状态,并结束所述第一线程;
若所述第一线程未读取到待对账数据,当所述第一线程获取到状态类的当前状态为异常状态,则不更新所述状态类的状态;当所述第一线程获取到状态类的当前状态为正常状态,则通过所述第一线程将所述状态类的状态更新为结束状态,并结束所述第一线程;
若所述第一线程读取到待对账数据,当所述第一线程获取到状态类的当前状态为异常状态,则结束所述第一线程;当所述第一线程获取到状态类的当前状态为正常状态,则通过所述第一线程调用offer函数将所述待对账数据加入到所述数据队列中。
可选地,所述通过至少两个第二线程从所述数据队列读取所述待对账数据,加入到对账临时表中,包括:
对于每个第二线程,在从所述数据队列读取到待对账数据后,将所述待对账数据存储到所述第二线程对应的缓存队列中,当所述缓存队列中的待对账数据达到预设条数后,进行一次事务,将所述缓存队列中的待对账数据插入到所述对账临时表中。
可选地,在通过至少两个第二线程从所述数据队列读取所述待对账数据之前,所述方法还包括:
通过所述第二线程获取状态类的当前状态;
若所述状态类的当前状态为异常状态,则结束所述第二线程。
可选地,在通过至少两个第二线程从所述数据队列读取所述待对账数据加入到对账临时表过程中,若发生异常,则通过所述第二线程将状态类的状态更新为异常状态,并结束所述第二线程。
可选地,在通过第一线程读取待对账数据之前,所述方法还包括:
通过主线程创建所述第一线程和所述至少两个第二线程,并创建状态类及所述数据队列。
可选地,所述基于所述对账临时表进行对账处理,包括:
基于所述对账临时表,获得对账差错数据;
对所述对账差错数据进行信息补全处理,获得补充后的对账差错数据;
将所述对账差错数据进行存储。
本申请第二个方面提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的方法。
本申请第三个方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的方法。
本申请提供的对账数据的处理方法、电子设备及存储介质,通过第一线程读取待对账数据,加入到数据队列中,通过至少两个第二线程从数据队列读取待对账数据,加入到对账临时表中,并基于对账临时表进行对账处理,有效缩短对账数据的准备时间,提高对账处理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的对账数据的处理方法的流程示意图;
图2为本申请一实施例提供的生产者线程的执行过程示意图;
图3为本申请一实施例提供的消费者线程的执行过程示意图;
图4为本申请一实施例提供的主线程执行过程示意图;
图5为本申请一实施例提供的电子设备的结构示意图;
图6为本申请一实施例提供的对账系统的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对本申请所涉及的名词进行解释:
线程:thread,是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
游标:Cursor,是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
本申请实施例提供的对账数据的处理方法,适用于相同数据源及跨数据源进行对账的应用场景。比如两个交易平台分别将账务数据存储在了两个数据库,需要将这两个数据库的账务数据之间进行对账,则进行跨数据源的对账。具体的,可以通过主线程创建第一线程和至少两个第二线程,第一线程可以称为生产者线程,第二线程可以称为消费者线程。通过第一线程从数据源读取待对账数据,加入到数据队列中,至少两个第二线程从数据队列读取待对账数据加入到对账临时表,完成对账数据的准备,由于设置了队列,第一线程和第二线程可以并行处理,获得对账临时表,然后可以基于对账临时表进行对账处理,有效缩短对账数据的准备时间,提高对账处理效率。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
本实施例提供一种对账数据的处理方法,用于进行对账处理。本实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于数据处理的电子设备。
如图1所示,为本实施例提供的对账数据的处理方法的流程示意图,该方法包括:
步骤101,通过第一线程读取待对账数据,加入到数据队列中。
具体的,可以由主线程创建第一线程和至少两个第二线程,第一线程可称为生产者线程,第二线程可称为消费者线程。主线程可以使用合并(join)函数(或称join方法,为与上述对账数据的处理方法区分,以下均称函数)等待生产者线程和消费者线程的完成,维护生产者线程和消费者线程的生命周期。
主线程还可以创建队列(ArrayBlockingQueue,为了区分,称为数据队列)和状态类。状态类的初始状态为“执行中”,也可称为正常状态。
生产者线程和消费者线程可以共享由主线程创建的状态类和数据队列。
生产者线程的个数可以为单个,数据源使用原始数据(账务数据)所在的数据源。
消费者线程的个数可以为多个,包括两个或两个以上。消费者线程的个数可以根据实际需求设置。消费者线程的个数随数目的增长呈现出来的性能变化是先由弱变强,达到某个阈值后又会由强变弱,可以根据具体的性能测试配置消费者线程的个数,以达到最优的性能。
对账数据的处理可以包括数据准备和对账两个阶段。
首先是在数据准备阶段,主线程创建生产者线程、消费者线程、状态类及数据队列后,生产者线程从数据源读取待对账数据,只需读取对账相关的字段即可,将待对账数据加入到数据队列。
步骤102,通过至少两个第二线程从数据队列读取待对账数据,加入到对账临时表中。
在生产者线程将待对账数据加入到数据队列后,第二线程则可以从数据队列读取待对账数据,加入到对账临时表。
在生产者线程首次将待对账数据加入到数据队列之后,第一线程和第二线程可以流水化并行处理。比如,第一线程可以一直读取新的待对账数据加入到数据队列,第二线程也可以一直从数据队列读取已有的待对账数据插入到对账临时表。
示例性的,需要对两个系统A和B产生的账务数据进行对账。两系统的账务数据分别存储在数据库C和数据库D,具体是需要对某一日的账务数据进行对账,则可以通过第一线程从数据库C读取该日的第一待对账数据加入到数据队列,由第二线程从数据队列读取第一待对账数据加入到第一对账临时表,第一线程从数据库D读取该日的第二待对账数据加入到数据队列,第二线程从数据队列读取第二待对账数据加入到第二对账临时表。则准备好了该日系统A和B对应的对账临时表,后续即可基于第一对账临时表和第二对账临时表进行对账处理。
步骤103,基于对账临时表进行对账处理。
具体的,在数据准备阶段准备好对账临时表后,则可以基于对账临时表进行对账处理。示例性的,需要对第一对账临时表和第二对账临时表进行对账,可以获取第一对账临时表有而第二对账临时表没有的单边数据,以及第一对账临时表没有而第二对账临时表有的单边数据,形成对账差错数据,可以将对账差错数据补全信息后插入对账差错表中进行存储,完成对账。
本实施例提供的对账数据的处理方法,通过第一线程读取待对账数据,加入到数据队列中,通过至少两个第二线程从数据队列读取待对账数据,加入到对账临时表中,并基于对账临时表进行对账处理,有效缩短对账数据的准备时间,提高对账处理效率。
实施例二
本实施例对上述实施例提供的方法做进一步补充说明。
作为一种可实施的方式,在上述实施例的基础上,可选地,步骤101具体包括:
步骤1011,通过第一线程从待对账数据所在的数据库读取待对账数据,加入到数据队列中,待对账数据包括与对账相关的预设字段。
具体的,第一线程的数据源可以是各交易平台或系统产生的账户数据的原始数据源,可以通过第一线程从各数据源处读取预设字段的待对账数据。预设字段是根据对账需求设置的与对账逻辑本身相关的字段,比如流水号,而无需读取其他字段,以减少数据传输压力,提高数据传输效率,并减少存储数据空间的占用,提升数据装载以及对账的性能。
作为一种可实施的方式,在上述实施例的基础上,可选地,步骤101具体包括:
步骤2011,通过第一线程使用游标读取待对账数据,加入到数据队列中。
具体的,第一线程使用游标循环读取待对账数据,加入到数据队列中。
作为一种可实施的方式,在上述实施例的基础上,可选地,该方法还包括:
在通过第一线程读取待对账数据时,若发生异常,则通过第一线程基于同步方法将状态类的状态设置为异常状态,并结束第一线程;
若第一线程未读取到待对账数据,当第一线程获取到状态类的当前状态为异常状态,则不更新状态类的状态;当第一线程获取到状态类的当前状态为正常状态,则通过第一线程将状态类的状态更新为结束状态,并结束第一线程;
若第一线程读取到待对账数据,当第一线程获取到状态类的当前状态为异常状态,则结束第一线程;当第一线程获取到状态类的当前状态为正常状态,则通过第一线程调用offer函数将待对账数据加入到数据队列中。
示例性的,如图2所示,为本实施例提供的生产者线程的执行过程示意图,如果在第一线程读取环节发生异常(exception),则使用同步(synchronized)方法设置状态类的状态为“生产者错误”并结束线程。
如果游标未读取到新数据(新的待对账数据),生产者线程使用同步方法设置状态类的状态:如果当前状态非“执行中”说明消费者线程发生错误,此时不更新状态类中的状态,如果当前状态为“执行中”则将状态类的状态更新成“生产者结束”。然后结束线程。
如果游标读取到新数据,通过同步方法获取状态类的当前状态。
如果状态类的状态非“执行中”,线程结束。
如果状态类的状态为“执行中”,使用提供(offer)函数将数据放入数据队列中,超时时间设置为100毫秒。超时时间可以根据实际需求设置,不限于100毫秒
若生产者线程成功将数据放入数据队列中(在100毫秒内),则继续读取游标。
若生产者线程未成功将数据放入数据队列之中(在100毫秒内),则当前线程调用线程谦让(yield)方法,使得消费者可以获得更多的处理器(CPU)资源,然后返回到通过同步方法获取当前状态类的状态判断是否为“执行中”的步骤。
作为一种可实施的方式,在上述实施例的基础上,可选地,步骤102具体包括:
步骤1021,对于每个第二线程,在从数据队列读取到待对账数据后,将待对账数据存储到第二线程对应的缓存队列中,当缓存队列中的待对账数据达到预设条数后,进行一次事务,将缓存队列中的待对账数据插入到对账临时表中。
作为一种可实施的方式,在上述实施例的基础上,可选地,在通过至少两个第二线程从数据队列读取待对账数据之前,方法还包括:
步骤2021,通过第二线程获取状态类的当前状态;
步骤2022,若状态类的当前状态为异常状态,则结束第二线程。
作为一种可实施的方式,在上述实施例的基础上,可选地,在通过至少两个第二线程从数据队列读取待对账数据加入到对账临时表过程中,若发生异常,则通过第二线程将状态类的状态更新为异常状态,并结束第二线程。
具体的,第二线程,也即消费者线程启动后执行一次处理循环:
示例性的,如图3所示,为本实施例提供的消费者线程的执行过程示意图。
在该循环中,首先消费者线程通过同步方法判断状态类的状态是否为“生产者错误”或“消费者错误”,如果是的话则退出线程。
如果不是的话则使用获得(poll)方法从数据队列中获取待对账数据,超时时间设置为100毫秒。超时时间可以根据实际需求设置,不限于100毫秒。
若消费者线程成功读取到待对账数据(在100毫秒内),则将待对账数据存入“待插入缓存”(或称缓存队列)中,“待插入缓存”每满500条进行一次事务将数据插入到对账临时表中。具体预设条数可以根据实际需求设置,不限于500条。
若消费者未从队列中读出数据(在100毫秒内),则使用同步方法检查状态类的状态以及队列的大小。
如果状态非“生产者结束”或队列的大小非空,则当前线程调用线程谦让(yield)方法,使得生产者可以获得更多的处理器(CPU)资源,然后重新进行获得(poll)操作。
如果状态为“生产者结束”且队列的大小为空,则退出循环。
循环退出后,将待插入缓存中剩余的数据进行一次事务将数据插入到对账临时表中(图中省略此步骤展示)。
如果消费者线程在执行过程中发生任何异常(exception),则使用同步方法设置状态类的状态为“消费者错误”并结束线程(图中省略此步骤展示)。
作为一种可实施的方式,在上述实施例的基础上,可选地,在通过第一线程读取待对账数据之前,方法还包括:
通过主线程创建第一线程和至少两个第二线程,并创建状态类及数据队列。
主线程在生产者线程和消费者线程全部执行完成后,判断状态类的状态是否为“生产者结束”,如果是则返回成功,如果不是返回失败。还可以将返回信息显示给相关人员,以使相关人员实时掌握对账处理的结果。示例性的,如图4所示,为本实施例提供的主线程执行过程示意图。
以上数据准备阶段,生产者线程和消费者线程可以并发进行,实现了准备数据时间的大幅度压缩,取消了生成对账文件的设计,节省了存储空间。
作为一种可实施的方式,在上述实施例的基础上,可选地,步骤103具体包括:
步骤1031,基于对账临时表,获得对账差错数据。
步骤1032,对对账差错数据进行信息补全处理,获得补充后的对账差错数据;
步骤1033,将对账差错数据进行存储。
具体的,在百万级数据量的对账中所产生的单边数据或单边交易的数量级一般会很小,不会超过2位数。
鉴于单边数据仅占对账数据的极少一部分,对账临时表被大幅度简化,仅保存与对账逻辑本身相关的要素(例如流水号)。对账临时表字段的减少,减轻了网络传输数据的压力,以及节省了数据库存储数据的空间,可以提升数据装载以及对账的性能。
可以检索待对账数据,获得单边交易,形成对账差错数据,对账完成之后,对于对账差错数据将其内容补完后插入对账差错表中进行存储。
示例性的,在数据准备阶段准备好对账临时表后,则可以基于对账临时表进行对账处理。示例性的,需要对第一对账临时表和第二对账临时表进行对账,可以获取第一对账临时表有而第二对账临时表没有的单边数据,以及第一对账临时表没有而第二对账临时表有的单边数据,形成对账差错数据,可以将对账差错数据补全信息后插入对账差错表中进行存储,完成对账。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
本实施例提供的对账数据的处理方法,通过第一线程读取待对账数据,加入到数据队列中,通过至少两个第二线程从数据队列读取待对账数据,加入到对账临时表中,并基于对账临时表进行对账处理,有效缩短对账数据的准备时间,提高对账处理效率。通过第一线程可以从不同数据源读取待对账数据加入到队列中,实现跨数据源的对账处理。并且,第一线程读取的待对账数据仅需包括与对账相关的预设字段即可,无需读取所有字段,提高数据传输效率,减轻网络传输数据的压力,节省存储空间,进一步提升数据装载及对账效率。还通过第一线程使用游标读取数据,避免数据读取错误情况的发生。通过同步状态类,保证各线程的正常执行,当有线程执行出现异常时,可以及时结束线程。通过创建至少两个线程用于将待对账数据插入对账临时表,提高对账数据准备效率。此外,在进行对账处理时,获得对账差错数据后,进行信息补全,保证对账结果信息的完整性。
实施例三
本实施例提供一种电子设备,用于执行上述实施例提供的方法。
如图5所示,为本实施例提供的电子设备的结构示意图。该电子设备50包括:至少一个处理器51和存储器52;
存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的方法。
根据本实施例的电子设备,通过第一线程读取待对账数据,加入到数据队列中,通过至少两个第二线程从数据队列读取待对账数据,加入到对账临时表中,并基于对账临时表进行对账处理,有效缩短对账数据的准备时间,提高对账处理效率。
在一些实施例中,还提供一种对账系统,用于执行上述实施例提供的方法。如图6所示,为本实施例提供的对账系统的结构示意图。该对账系统可以包括上述的电子设备,以及至少一个数据源设备。电子设备通过第一线程从数据源设备读取待对账数据加入到数据队列,通过第二线程从数据队列读取待对账数据加入到对账临时表中,基于对账临时表进行对账处理。
实施例四
本实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的方法。
根据本实施例的计算机可读存储介质,通过第一线程读取待对账数据,加入到数据队列中,通过至少两个第二线程从数据队列读取待对账数据,加入到对账临时表中,并基于对账临时表进行对账处理,有效缩短对账数据的准备时间,提高对账处理效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (11)
1.一种对账数据的处理方法,其特征在于,包括:
通过第一线程读取待对账数据,加入到数据队列中;
通过至少两个第二线程从所述数据队列读取所述待对账数据,加入到对账临时表中;
基于所述对账临时表进行对账处理。
2.根据权利要求1所述的方法,其特征在于,所述通过第一线程读取待对账数据,包括:
通过第一线程从待对账数据所在的数据库读取所述待对账数据,所述待对账数据包括与对账相关的预设字段。
3.根据权利要求1所述的方法,其特征在于,所述通过第一线程读取待对账数据,包括:
通过所述第一线程使用游标读取待对账数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在通过第一线程读取待对账数据时,若发生异常,则通过所述第一线程基于同步方法将状态类的状态设置为异常状态,并结束所述第一线程;
若所述第一线程未读取到待对账数据,当所述第一线程获取到状态类的当前状态为异常状态,则不更新所述状态类的状态;当所述第一线程获取到状态类的当前状态为正常状态,则通过所述第一线程将所述状态类的状态更新为结束状态,并结束所述第一线程;
若所述第一线程读取到待对账数据,当所述第一线程获取到状态类的当前状态为异常状态,则结束所述第一线程;当所述第一线程获取到状态类的当前状态为正常状态,则通过所述第一线程调用offer函数将所述待对账数据加入到所述数据队列中。
5.根据权利要求1所述的方法,其特征在于,所述通过至少两个第二线程从所述数据队列读取所述待对账数据,加入到对账临时表中,包括:
对于每个第二线程,在从所述数据队列读取到待对账数据后,将所述待对账数据存储到所述第二线程对应的缓存队列中,当所述缓存队列中的待对账数据达到预设条数后,进行一次事务,将所述缓存队列中的待对账数据插入到所述对账临时表中。
6.根据权利要求1所述的方法,其特征在于,在通过至少两个第二线程从所述数据队列读取所述待对账数据之前,所述方法还包括:
通过所述第二线程获取状态类的当前状态;
若所述状态类的当前状态为异常状态,则结束所述第二线程。
7.根据权利要求1所述的方法,其特征在于,在通过至少两个第二线程从所述数据队列读取所述待对账数据加入到对账临时表过程中,若发生异常,则通过所述第二线程将状态类的状态更新为异常状态,并结束所述第二线程。
8.根据权利要求1所述的方法,其特征在于,在通过第一线程读取待对账数据之前,所述方法还包括:
通过主线程创建所述第一线程和所述至少两个第二线程,并创建状态类及所述数据队列。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述基于所述对账临时表进行对账处理,包括:
基于所述对账临时表,获得对账差错数据;
对所述对账差错数据进行信息补全处理,获得补充后的对账差错数据;
将所述对账差错数据进行存储。
10.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1-9中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910720163.XA CN110413428B (zh) | 2019-08-06 | 2019-08-06 | 对账数据的处理方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910720163.XA CN110413428B (zh) | 2019-08-06 | 2019-08-06 | 对账数据的处理方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413428A true CN110413428A (zh) | 2019-11-05 |
CN110413428B CN110413428B (zh) | 2022-01-25 |
Family
ID=68366057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910720163.XA Active CN110413428B (zh) | 2019-08-06 | 2019-08-06 | 对账数据的处理方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413428B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338787A (zh) * | 2020-02-04 | 2020-06-26 | 浙江大华技术股份有限公司 | 一种数据处理方法及装置、存储介质、电子装置 |
CN111626868A (zh) * | 2020-05-25 | 2020-09-04 | 泰康保险集团股份有限公司 | 对账方法、装置、设备及计算机可读存储介质 |
CN112434092A (zh) * | 2020-11-13 | 2021-03-02 | 中信银行股份有限公司 | 一种数据处理方法、装置、电子设备和可读存储介质 |
CN113450114A (zh) * | 2021-07-14 | 2021-09-28 | 中国银行股份有限公司 | 基于区块链的数据文件获取方法及装置 |
CN114356454A (zh) * | 2022-01-06 | 2022-04-15 | 京东科技控股股份有限公司 | 对账数据处理方法、设备、存储介质及程序产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620703A (zh) * | 2008-07-04 | 2010-01-06 | 阿里巴巴集团控股有限公司 | 一种缓冲记账方法及装置 |
CN105243528A (zh) * | 2015-09-15 | 2016-01-13 | 普元信息技术股份有限公司 | 大数据环境下金融it系统中图形化集中对账系统与方法 |
US20170187725A1 (en) * | 2015-12-29 | 2017-06-29 | Yahoo!, Inc. | User verification |
CN107122457A (zh) * | 2017-04-26 | 2017-09-01 | 努比亚技术有限公司 | 记录网络用户行为数据的方法及其装置、计算机可读介质 |
CN107153527A (zh) * | 2017-05-17 | 2017-09-12 | 北京环境特性研究所 | 一种基于消息队列的并行雷达数据处理方法 |
CN108846024A (zh) * | 2018-05-24 | 2018-11-20 | 吉旗(成都)科技有限公司 | 一种解决分布式数据库唯一自增序列的方法 |
CN108961026A (zh) * | 2018-07-04 | 2018-12-07 | 中国建设银行股份有限公司 | 账务核算处理方法、装置及电子设备 |
CN109067844A (zh) * | 2018-07-09 | 2018-12-21 | 上海瀚银信息技术有限公司 | 一种消息通讯系统 |
CN109729023A (zh) * | 2018-05-14 | 2019-05-07 | 网联清算有限公司 | 交易数据传输方法及其装置 |
CN109766124A (zh) * | 2018-12-26 | 2019-05-17 | 深圳左邻永佳科技有限公司 | 业务开发方法、装置、计算机设备和存储介质 |
-
2019
- 2019-08-06 CN CN201910720163.XA patent/CN110413428B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620703A (zh) * | 2008-07-04 | 2010-01-06 | 阿里巴巴集团控股有限公司 | 一种缓冲记账方法及装置 |
CN105243528A (zh) * | 2015-09-15 | 2016-01-13 | 普元信息技术股份有限公司 | 大数据环境下金融it系统中图形化集中对账系统与方法 |
US20170187725A1 (en) * | 2015-12-29 | 2017-06-29 | Yahoo!, Inc. | User verification |
CN107122457A (zh) * | 2017-04-26 | 2017-09-01 | 努比亚技术有限公司 | 记录网络用户行为数据的方法及其装置、计算机可读介质 |
CN107153527A (zh) * | 2017-05-17 | 2017-09-12 | 北京环境特性研究所 | 一种基于消息队列的并行雷达数据处理方法 |
CN109729023A (zh) * | 2018-05-14 | 2019-05-07 | 网联清算有限公司 | 交易数据传输方法及其装置 |
CN108846024A (zh) * | 2018-05-24 | 2018-11-20 | 吉旗(成都)科技有限公司 | 一种解决分布式数据库唯一自增序列的方法 |
CN108961026A (zh) * | 2018-07-04 | 2018-12-07 | 中国建设银行股份有限公司 | 账务核算处理方法、装置及电子设备 |
CN109067844A (zh) * | 2018-07-09 | 2018-12-21 | 上海瀚银信息技术有限公司 | 一种消息通讯系统 |
CN109766124A (zh) * | 2018-12-26 | 2019-05-17 | 深圳左邻永佳科技有限公司 | 业务开发方法、装置、计算机设备和存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111338787A (zh) * | 2020-02-04 | 2020-06-26 | 浙江大华技术股份有限公司 | 一种数据处理方法及装置、存储介质、电子装置 |
CN111338787B (zh) * | 2020-02-04 | 2023-09-01 | 浙江大华技术股份有限公司 | 一种数据处理方法及装置、存储介质、电子装置 |
CN111626868A (zh) * | 2020-05-25 | 2020-09-04 | 泰康保险集团股份有限公司 | 对账方法、装置、设备及计算机可读存储介质 |
CN112434092A (zh) * | 2020-11-13 | 2021-03-02 | 中信银行股份有限公司 | 一种数据处理方法、装置、电子设备和可读存储介质 |
CN113450114A (zh) * | 2021-07-14 | 2021-09-28 | 中国银行股份有限公司 | 基于区块链的数据文件获取方法及装置 |
CN114356454A (zh) * | 2022-01-06 | 2022-04-15 | 京东科技控股股份有限公司 | 对账数据处理方法、设备、存储介质及程序产品 |
CN114356454B (zh) * | 2022-01-06 | 2024-06-18 | 京东科技控股股份有限公司 | 对账数据处理方法、设备、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN110413428B (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413428A (zh) | 对账数据的处理方法、电子设备及存储介质 | |
CN107590277B (zh) | 数据同步方法、装置、电子设备及存储介质 | |
JP6223569B2 (ja) | ビジネスフローをスケジュールするためのコンピュータ装置、方法及び装置 | |
CN107016029B (zh) | 一种业务数据的处理方法、装置及系统 | |
CN105446893A (zh) | 数据存储方法及设备 | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
CN110837505B (zh) | 状态数据存储方法、状态数据同步方法、设备和存储介质 | |
CN105912387A (zh) | 数据处理作业调度方法及装置 | |
CN115840631B (zh) | 基于raft的高可用分布式任务调度方法和设备 | |
CN113193947B (zh) | 实现分布式全局序的方法、设备、介质及程序产品 | |
CN115185787B (zh) | 处理事务日志的方法及装置 | |
CN104683472A (zh) | 一种支持大数据量的数据传输方法 | |
CN113076304A (zh) | 一种分布式版本管理方法、装置和系统 | |
CN108415757A (zh) | 分布式事务处理方法及装置 | |
CN108874738A (zh) | 分布式并行运算方法、装置、计算机设备及存储介质 | |
CN109002462A (zh) | 一种实现分布式事物的方法及系统 | |
CN113157710A (zh) | 区块链数据并行写入方法、装置、计算机设备及存储介质 | |
CN111784318A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN107220275B (zh) | 数据库句柄处理方法、装置和计算机设备 | |
CN104978313A (zh) | 数据库系统的数据同步方法、装置及服务器 | |
CN110532069A (zh) | 一种分布式事务提交方法及装置 | |
CN110532111A (zh) | 高并发请求异步处理方法、装置、计算机设备及存储介质 | |
CN110413675A (zh) | 一种实时任务计算的控制方法、装置、服务器及存储介质 | |
CN112380183B (zh) | 分布式文件的同步方法、装置、计算机设备及存储介质 | |
CN107526838A (zh) | 数据库集群扩容的方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |