CN111061748B - 一种热点账户的记账方法及装置 - Google Patents
一种热点账户的记账方法及装置 Download PDFInfo
- Publication number
- CN111061748B CN111061748B CN201911274245.2A CN201911274245A CN111061748B CN 111061748 B CN111061748 B CN 111061748B CN 201911274245 A CN201911274245 A CN 201911274245A CN 111061748 B CN111061748 B CN 111061748B
- Authority
- CN
- China
- Prior art keywords
- account
- hot spot
- billing
- updating
- memory database
- 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
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
- 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
-
- 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/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种热点账户的记账方法及装置,方法包括:从硬盘数据库中读取热点账户的余额,并将热点账户的余额写入内存数据库中;在接收到针对热点账户的交易请求时,依据交易请求,更新异步记账流水表及向内存数据库发送金额更新指令,以使内存数据库按照单线程机制,执行接收到的金额更新指令,更新热点账户的余额;每隔设定时间,执行一次按照异步记账流水表,更新硬盘数据库中热点账户的余额的步骤。在本申请中,通过以上方式可以保证热点账户记账处理的效率及硬件数据库准确的对热点账户进行记账。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种热点账户的记账方法及装置。
背景技术
在银行或者第三方支付系统中,被高频操作的账户一般称为热点账户。
目前,一般采用硬件数据库,对热点账户进行记账处理。因热点账户会被频繁操作,硬件数据库需要频繁的进行I/O操作,但是频繁的进行I/O操作会降低硬件数据库的I/O读写速度,进而会影响热点账户记账处理的效率。
发明内容
为解决上述技术问题,本申请实施例提供一种热点账户的记账方法及装置,以达到保证热点账户记账处理的效率的目的,技术方案如下:
一种热点账户的记账方法,包括:
从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中;
在接收到针对所述热点账户的交易请求时,依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额,所述异步记账流水表包括:流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态;
每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
优选的,在所述交易请求为入账请求时,所述依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,包括:
依据所述入账请求,更新异步记账流水表;
判断更新所述异步记账流水表是否成功;
若是,则依据所述入账请求,向所述内存数据库发送金额更新指令。
优选的,在所述依据所述入账请求,向所述内存数据库发送金额更新指令之后,还包括:
判断所述内存数据库更新所述热点账户的余额是否成功;
若否,则更新所述异步记账流水表中的处理状态为失败。
优选的,在所述内存数据库更新所述热点账户的余额失败的情况下,所述方法还包括:
记录内存数据库操作失败的异常日志。
优选的,在所述交易请求为扣账请求时,所述依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,包括:
依据所述扣账请求,向所述内存数据库发送金额更新指令;
判断所述内存数据库更新所述热点账户的余额是否成功;
若是,则依据所述扣账请求,更新所述异步记账流水表。
优选的,在所述依据所述扣账请求,更新所述异步记账流水表之后,还包括:
判断所述异步记账流水表是否更新成功;
若否,则在所述异步记账流水表中增加所述内存数据库执行所述金额更新指令后,所述内存数据库中所述热点账户的余额。
优选的,在所述异步记账流水表更新失败的情况下,所述方法还包括:
记录所述异步记账流水表更新失败的异常日志。
优选的,所述方法还包括:
对所述热点账户进行维护,并依据维护后的热点账户,更新所述内存数据库中所述热点账户的余额。
一种热点账户的记账装置,包括:
读取写入模块,用于从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中;
处理模块,用于在接收到针对所述热点账户的交易请求时,依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额,所述异步记账流水表包括:流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态;
定时执行模块,用于每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
优选的,在所述交易请求为入账请求时,所述处理模块,具体用于:
依据所述入账请求,更新异步记账流水表;
判断更新所述异步记账流水表是否成功;
若是,则依据所述入账请求,向所述内存数据库发送金额更新指令。
优选的,所述处理模块,还用于:
判断所述内存数据库更新所述热点账户的余额是否成功;
若否,则更新所述异步记账流水表中的处理状态为失败。
优选的,所述处理模块,还用于:
在所述内存数据库更新所述热点账户的余额失败的情况下,记录内存数据库操作失败的异常日志。
优选的,在所述交易请求为扣账请求时,所述处理模块,具体用于:
依据所述扣账请求,向所述内存数据库发送金额更新指令;
判断所述内存数据库更新所述热点账户的余额是否成功;
若是,则依据所述扣账请求,更新所述异步记账流水表。
优选的,所述处理模块,还用于:
判断所述异步记账流水表是否更新成功;
若否,则在所述异步记账流水表中增加所述内存数据库执行所述金额更新指令后,所述内存数据库中所述热点账户的余额。
优选的,所述处理模块,还用于:
在所述异步记账流水表更新失败的情况下,记录所述异步记账流水表更新失败的异常日志。
优选的,所述装置还包括:
维护模块,用于对所述热点账户进行维护,并依据维护后的热点账户,更新所述内存数据库中所述热点账户的余额。
与现有技术相比,本申请的有益效果为:
在本申请中,将硬盘数据库中热点账户的余额读取并写入内存数据库中,并依据交易请求,向所述内存数据库发送金额更新指令,以使内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额,由于内存数据库的读写速度高于硬件数据库的读写速度,并且频繁的进行I/O操作对内存数据库的读写速度的影响较小,因此可以保证热点账户记账处理的效率,并且通过更新异步记账流水表,每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤,保证硬件数据库准确的对热点账户进行记账。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种热点账户的记账方法实施例1的流程图;
图2是本申请提供的一种热点账户的记账方法实施例2的流程图;
图3是本申请提供的一种热点账户的记账方法实施例3的流程图;
图4是本申请提供的一种热点账户的记账方法实施例4的流程图;
图5是本申请提供的一种热点账户的记账方法实施例5的流程图;
图6是本申请提供的一种热点账户的记账方法实施例6的流程图;
图7是本申请提供的一种热点账户的记账方法实施例7的流程图;
图8是本申请提供的一种热点账户的记账方法实施例8的流程图;
图9是本申请提供的一种热点账户的记账装置的逻辑结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种热点账户的交易方法,包括:从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中;在接收到针对所述热点账户的交易请求时,依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额,所述异步记账流水表包括:流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态;每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。在本申请中,可以保证热点账户记账处理的效率及硬件数据库准确的对热点账户进行记账。
接下来对本申请实施例公开的热点账户的记账方法进行介绍,如图1所示的,为本申请提供的一种热点账户的记账方法实施例1的流程图,可以包括以下步骤:
步骤S11、从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中。
内存数据库可以理解为:建立在内存中的数据库。内存数据库是基于内存操作的。
在本实施例中,可以对所述热点账户进行维护,并依据维护后的热点账户,更新所述内存数据库中所述热点账户的余额。
对所述热点账户进行维护的过程,可以为:创建热点账户信息表(账户账号,账户名称,状态(0-停用,1-启用),是否允许异步记账(0-否,1-是)),通过管理台维护热点账户,功能包括新增、启用、停止、补登内存数据库余额、实时核对。新增、启用时将热点账户的余额同步到内存数据库中。在新增热点账户时,默认不允许异步记账,在确认可以开始异步记账时,修改账户为允许异步记账时,只修改内存数据库中的状态,数据库中不做更新,以便在发生灾难服务重启时,对账户账务做相应核对处理。
步骤S12、在接收到针对所述热点账户的交易请求时,依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额。
单线程机制,可以理解为:按照指令的接收顺序,逐个执行指令,并在一个指令执行完成后,执行下一个指令。
需要说明的是,虽然内存数据库是按照单线程机制,执行接收到的金额更新指令,但是内存数据库的效率依然远远超过硬盘数据库的多线程。
另外,内存数据库按照单线程机制,可以避免不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,避免因为可能出现死锁而导致的性能消耗。
内存数据库底层使用了一些特殊的数据结构如跳跃表等,通过这些数据结构的优化可以让对象更快的存入内存。
其中,内存数据库可以基于IO多路复用技术按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额,以此来进一步提高处理效率。
所述异步记账流水表包括:流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态。
交易类型可以包括入账或扣账。异步记账状态可以包括:未记账(可以表示为0)、记账成功(可以表示为1)或记账失败(可以表示为2)。处理状态可以包括:未处理(可以表示为0)、处理成功(可以表示为1)或处理失败(可以表示为2)。
步骤S13、每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
本实施例中,通过创建定时任务来实现硬盘数据库中热点账户的余额的更新。定时任务具体可以为:每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤
设定时间可以根据需要进行灵活设置,在此不做限制。其中,设定时间可以设置为但不局限于:60秒。
在本申请中,将硬盘数据库中热点账户的余额读取并写入内存数据库中,并依据交易请求,向所述内存数据库发送金额更新指令,以使内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额,由于内存数据库的读写速度高于硬件数据库的读写速度,并且频繁的进行I/O操作对内存数据库的读写速度的影响较小,因此可以保证热点账户记账处理的效率,并且通过更新异步记账流水表,每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤,保证硬件数据库准确的对热点账户进行记账。
并且,利用内存数据库读写速度快的高效性能优势,及所有交易都完全基于从硬盘数据库中读取并写入到内存数据库中的余额进行操作的基础上,既保证了账务的完整性和准确性,又有效的提高效率。
作为本申请另一可选实施例,参照图2,为本申请提供的一种热点账户的记账方法实施例2的流程示意图,本实施例主要是对上述实施例1描述的热点账户的记账方法的细化方案,如图2所示,该方法可以包括但并不局限于以下步骤:
步骤S21、从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中。
步骤S21的详细过程可以参见实施例1中步骤S11的相关介绍,在此不再赘述。
步骤S22、在接收到针对所述热点账户的入账请求时,依据所述入账请求,更新异步记账流水表。
依据所述入账请求,更新异步记账流水表,可以包括:在异步记账流水表中插入一条新的异步记账流水记录,并依据入账请求,更新异步记账流水记录中的流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态。其中,异步记账状态为未记账,处理状态为未处理。
步骤S23、判断更新所述异步记账流水表是否成功。
若是,则执行步骤S24;若否,则返回记账失败。
步骤S24、依据所述入账请求,向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额。
本实施例中,金额更新指令具体为金额增加指令。相应地,内存数据库执行金额增加指令,增加所述热点账户的余额。
步骤S22-S24为实施例1中步骤S12的一种具体实施方式。
步骤S25、每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
步骤S25的详细过程可以参见实施例1中步骤S13的相关介绍,在此不再赘述。
作为本申请另一可选实施例,参照图3,为本申请提供的一种热点账户的记账方法实施例3的流程示意图,本实施例主要是对上述实施例2描述的热点账户的记账方法的扩展方案,如图3所示,该方法可以包括但并不局限于以下步骤:
步骤S31、从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中。
步骤S32、在接收到针对所述热点账户的入账请求时,依据所述入账请求,更新异步记账流水表。
依据所述入账请求,更新异步记账流水表,可以包括:在异步记账流水表中插入一条新的异步记账流水记录,并依据入账请求,更新异步记账流水记录中的流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态。其中,异步记账状态为未记账,处理状态为未处理。
步骤S33、判断更新所述异步记账流水表是否成功。
若是,则执行步骤S34;若否,则返回记账失败。
步骤S34、依据所述入账请求,向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额。
本实施例中,金额更新指令具体为金额增加指令。相应地,内存数据库执行金额增加指令,增加所述热点账户的余额。
步骤S31-S34的详细过程可以参见实施例2中步骤S21-S24的相关介绍,在此不再赘述。
步骤S35、判断所述内存数据库更新所述热点账户的余额是否成功。
若否,则执行步骤S36;若是,则返回记账成功。
步骤S36、更新所述异步记账流水表中的处理状态为失败。
步骤S37、每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
步骤S37与实施例2中步骤S25相同,在此不再赘述。
作为本申请另一可选实施例,参照图4,为本申请提供的一种热点账户的记账方法实施例4的流程示意图,本实施例主要是对上述实施例2描述的热点账户的记账方法的扩展方案,如图4所示,该方法可以包括但并不局限于以下步骤:
步骤S41、从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中。
步骤S42、在接收到针对所述热点账户的入账请求时,依据所述入账请求,更新异步记账流水表。
步骤S43、判断更新所述异步记账流水表是否成功。
若是,则执行步骤S44;若否,则返回记账失败。
步骤S44、依据所述入账请求,向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额。
步骤S41-S44的详细过程可以参见实施例2中步骤S21-S24的相关介绍,在此不再赘述。
步骤S45、判断所述内存数据库更新所述热点账户的余额是否成功。
若否,则执行步骤S46;若是,则返回记账成功。
步骤S46、更新所述异步记账流水表中的处理状态为失败,并记录内存数据库操作失败的异常日志。
记录内存数据库操作失败的异常日志后,异常日志可以用于监控异常。
步骤S47、每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
步骤S47与实施例2中步骤S25相同,在此不再赘述。
作为本申请另一可选实施例,参照图5,为本申请提供的一种热点账户的记账方法实施例5的流程示意图,本实施例主要是对上述实施例1描述的热点账户的记账方法的细化方案,如图5所示,该方法可以包括但并不局限于以下步骤:
步骤S51、从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中。
步骤S51的详细过程可以参见实施例1中步骤S11的相关介绍,在此不再赘述。
步骤S52、依据所述扣账请求,向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额。
本实施例中,金额更新指令具体为金额减少指令。相应地,内存数据库执行金额减少指令,减少所述热点账户的余额。
步骤S53、判断所述内存数据库更新所述热点账户的余额是否成功。
若是,则执行步骤S54;若否,则返回记账失败。
步骤S54、依据所述扣账请求,更新所述异步记账流水表。
依据所述扣账请求,更新异步记账流水表,可以包括:在异步记账流水表中插入一条新的异步记账流水记录,并依据扣账请求,更新异步记账流水记录中的流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态。其中,异步记账状态为未记账,处理状态为未处理。
步骤S52-S54为实施例1中步骤S12的一种具体实施方式。
步骤S55、每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
步骤S25的详细过程可以参见实施例1中步骤S13的相关介绍,在此不再赘述。
作为本申请另一可选实施例,参照图6,为本申请提供的一种热点账户的记账方法实施例6的流程示意图,本实施例主要是对上述实施例5描述的热点账户的记账方法的扩展方案,如图6所示,该方法可以包括但并不局限于以下步骤:
步骤S61、从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中。
步骤S62、依据所述扣账请求,向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额。
本实施例中,金额更新指令具体为金额减少指令。相应地,内存数据库执行金额减少指令,减少所述热点账户的余额。
步骤S63、判断所述内存数据库更新所述热点账户的余额是否成功。
若是,则执行步骤S64;若否,则返回记账失败。
步骤S64、依据所述扣账请求,更新所述异步记账流水表。
依据所述扣账请求,更新异步记账流水表,可以包括:在异步记账流水表中插入一条新的异步记账流水记录,并依据扣账请求,更新异步记账流水记录中的流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态。其中,异步记账状态为未记账,处理状态为未处理。
步骤S61-S64的详细过程可以参见实施例5中步骤S51-S54的相关介绍,在此不再赘述。
步骤S65、判断所述异步记账流水表是否更新成功。
若否,则执行步骤S66;若是,则返回记账成功。
步骤S66、在所述异步记账流水表中增加所述内存数据库执行所述金额更新指令后,所述内存数据库中所述热点账户的余额。
在所述异步记账流水表中增加所述内存数据库执行所述金额更新指令后,所述内存数据库中所述热点账户的余额,可以在硬件数据库更新热点账户的余额时,保证更新的准确性。
步骤S67、每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
作为本申请另一可选实施例,参照图7,为本申请提供的一种热点账户的记账方法实施例7的流程示意图,本实施例主要是对上述实施例6描述的热点账户的记账方法的扩展方案,如图7所示,该方法可以包括但并不局限于以下步骤:
步骤S71、从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中。
步骤S72、依据所述扣账请求,向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额。
本实施例中,金额更新指令具体为金额减少指令。相应地,内存数据库执行金额减少指令,减少所述热点账户的余额。
步骤S73、判断所述内存数据库更新所述热点账户的余额是否成功。
若是,则执行步骤S74;若否,则返回记账失败。
步骤S74、依据所述扣账请求,更新所述异步记账流水表。
依据所述扣账请求,更新异步记账流水表,可以包括:在异步记账流水表中插入一条新的异步记账流水记录,并依据扣账请求,更新异步记账流水记录中的流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态。其中,异步记账状态为未记账,处理状态为未处理。
步骤S75、判断所述异步记账流水表是否更新成功。
若否,则执行步骤S76;若是,则返回记账成功。
步骤S71-S75的详细过程可以参见实施例6中步骤S61-S65的相关介绍,在此不再赘述。
步骤S76、在所述异步记账流水表中增加所述内存数据库执行所述金额更新指令后,所述内存数据库中所述热点账户的余额,并记录所述异步记账流水表更新失败的异常日志。
在所述异步记账流水表中增加所述内存数据库执行所述金额更新指令后,所述内存数据库中所述热点账户的余额,可以在硬件数据库更新热点账户的余额时,保证更新的准确性。
记录的所述异步记账流水表更新失败的异常日志,可以用于监控异常。
步骤S77、每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
可以理解的是,将硬件数据库中热点账户的余额映射到内存数据库中,入账交易和扣账交易都基于同一个账户余额,入账交易先登记异步流水,再更新余额,扣账交易先更新余额再登记异步流水,有效的避免了账户系统短款和账户透支问题。
当然,在本申请中,在热点账户的记账方法中设置异常处理机制,请参见图8,异常处理方法的过程可以包括:
管理台修改内存数据库余额提交,后台需要验证是否有定时任务正在执行,异步流水是否已全部处理完成。如果有定时任务正在执行或异步流水未全部处理完成不许修改;
定时任务发生记账失败,报主键冲突时可能发生了重复处理,记录严重错误日志,通过监控平台监控;
管理端增加查询页面,查询异步记账流水表,对于超过4小时(参数)和处理失败在管理预警,需人工干预。处理失败的流水可人工发起或改成正常待自动处理;
内存数据库重启,等待异步流水处理完成→暂停定时任务执行→修改异步记账标记为不允许异步记账(内存数据库)→修改内存数据库余额;
扣账记异步流水失败→回滚内存数据库余额失败,记录日志,监控平台监控,管理台手工增加内存数据库余额;
若系统发生灾难,在系统恢复后,默认所有账户都不允许异步记账,待人工核实账户余额和内存数据库中余额一致,并且系统灾难前的所有异步记账数据全部处理完成的基础上,手动设置热点账户允许异步记账,这个设置只更新内存数据库,不更新到数据库。
本实施例中,完善的异常处理机制,可以有效保证账务在发生异常时,人工介入处理方便快捷,在系统灾难后,账务核查和补录机制,可以方便业务人员对账务进行处理。
接下来对本申请提供的热点账户的记账装置进行介绍,下文介绍的热点账户的记账装置与上文介绍的热点账户的记账方法可相互对应参照。
请参见图9,热点账户的记账装置包括:读取写入模块11、处理模块12和定时执行模块13。
读取写入模块11,用于从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中;
处理模块12,用于在接收到针对所述热点账户的交易请求时,依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额,所述异步记账流水表包括:流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态;
定时执行模块13,用于每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤。
在所述交易请求为入账请求时,所述处理模块12,具体可以用于:
依据所述入账请求,更新异步记账流水表;
判断更新所述异步记账流水表是否成功;
若是,则依据所述入账请求,向所述内存数据库发送金额更新指令。
所述处理模块12,还可以用于:
判断所述内存数据库更新所述热点账户的余额是否成功;
若否,则更新所述异步记账流水表中的处理状态为失败。
所述处理模块12,还可以用于:
在所述内存数据库更新所述热点账户的余额失败的情况下,记录内存数据库操作失败的异常日志。
本实施例中,在所述交易请求为扣账请求时,所述处理模块12,具体可以用于:
依据所述扣账请求,向所述内存数据库发送金额更新指令;
判断所述内存数据库更新所述热点账户的余额是否成功;
若是,则依据所述扣账请求,更新所述异步记账流水表。
本实施例中,所述处理模块12,还可以用于:
判断所述异步记账流水表是否更新成功;
若否,则在所述异步记账流水表中增加所述内存数据库执行所述金额更新指令后,所述内存数据库中所述热点账户的余额。
本实施例中,所述处理模块12,还可以用于:
在所述异步记账流水表更新失败的情况下,记录所述异步记账流水表更新失败的异常日志。
本实施例中,上述热点账户的记账装置还可以包括:
维护模块,用于对所述热点账户进行维护,并依据维护后的热点账户,更新所述内存数据库中所述热点账户的余额。
需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种热点账户的记账方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (7)
1.一种热点账户的记账方法,其特征在于,包括:
从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中;
在接收到针对所述热点账户的交易请求时,依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额,所述异步记账流水表包括:流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态;
在所述交易请求为入账请求时,所述依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,包括:
依据所述入账请求,更新异步记账流水表;
判断更新所述异步记账流水表是否成功;
若是,则依据所述入账请求,向所述内存数据库发送金额更新指令;
每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤;
其中,所述方法还包括,对所述热点账户进行维护,并依据维护后的热点账户,更新所述内存数据库中所述热点账户的余额;所述对所述热点账户进行维护包括,创建热点账户信息表,通过管理台维护热点账户;所述热点账户信息表包括账户账号、账户名称、状态以及是否允许异步记账;所述管理台的功能包括新增、启用、停止、补登内存数据库余额和实时核对。
2.根据权利要求1所述的方法,其特征在于,在所述依据所述入账请求,向所述内存数据库发送金额更新指令之后,还包括:
判断所述内存数据库更新所述热点账户的余额是否成功;
若否,则更新所述异步记账流水表中的处理状态为失败。
3.根据权利要求2所述的方法,其特征在于,在所述内存数据库更新所述热点账户的余额失败的情况下,所述方法还包括:
记录内存数据库操作失败的异常日志。
4.根据权利要求1所述的方法,其特征在于,在所述交易请求为扣账请求时,所述依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,包括:
依据所述扣账请求,向所述内存数据库发送金额更新指令;
判断所述内存数据库更新所述热点账户的余额是否成功;
若是,则依据所述扣账请求,更新所述异步记账流水表。
5.根据权利要求4所述的方法,其特征在于,在所述依据所述扣账请求,更新所述异步记账流水表之后,还包括:
判断所述异步记账流水表是否更新成功;
若否,则在所述异步记账流水表中增加所述内存数据库执行所述金额更新指令后,所述内存数据库中所述热点账户的余额。
6.根据权利要求5所述的方法,其特征在于,在所述异步记账流水表更新失败的情况下,所述方法还包括:
记录所述异步记账流水表更新失败的异常日志。
7.一种热点账户的记账装置,其特征在于,包括:
读取写入模块,用于从硬盘数据库中读取热点账户的余额,并将所述热点账户的余额写入内存数据库中;
处理模块,用于在接收到针对所述热点账户的交易请求时,依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,以使所述内存数据库按照单线程机制,执行接收到的金额更新指令,更新所述热点账户的余额,所述异步记账流水表包括:流水号、所述热点账户的账号、交易类型、动账金额、异步记账状态和处理状态;
在所述交易请求为入账请求时,所述依据所述交易请求,更新异步记账流水表及向所述内存数据库发送金额更新指令,包括:
依据所述入账请求,更新异步记账流水表;
判断更新所述异步记账流水表是否成功;
若是,则依据所述入账请求,向所述内存数据库发送金额更新指令;
定时执行模块,用于每隔设定时间,执行一次按照所述异步记账流水表,更新所述硬盘数据库中热点账户的余额的步骤;
所述装置还包括维护模块,用于对所述热点账户进行维护,并依据维护后的热点账户,更新所述内存数据库中所述热点账户的余额;所述对所述热点账户进行维护包括,创建热点账户信息表,通过管理台维护热点账户;所述热点账户信息表包括账户账号、账户名称、状态以及是否允许异步记账;所述管理台的功能包括新增、启用、停止、补登内存数据库余额和实时核对。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911274245.2A CN111061748B (zh) | 2019-12-12 | 2019-12-12 | 一种热点账户的记账方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911274245.2A CN111061748B (zh) | 2019-12-12 | 2019-12-12 | 一种热点账户的记账方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111061748A CN111061748A (zh) | 2020-04-24 |
CN111061748B true CN111061748B (zh) | 2023-09-26 |
Family
ID=70298965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911274245.2A Active CN111061748B (zh) | 2019-12-12 | 2019-12-12 | 一种热点账户的记账方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061748B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111626736A (zh) * | 2020-05-28 | 2020-09-04 | 上海银行股份有限公司 | 一种加快热点账户交易响应速率的方法 |
CN113919829A (zh) * | 2021-10-09 | 2022-01-11 | 南京星云数字技术有限公司 | 账户交易请求处理方法、装置、系统及电子设备 |
CN114202334A (zh) * | 2021-12-09 | 2022-03-18 | 兴业银行股份有限公司 | 适用于热点账户异步批量更新余额的方法和系统 |
CN115034902A (zh) * | 2022-06-21 | 2022-09-09 | 支付宝(杭州)信息技术有限公司 | 记账处理方法及装置 |
CN115080662A (zh) * | 2022-06-21 | 2022-09-20 | 浙江网商银行股份有限公司 | 数据库切换方法和装置 |
CN115375313B (zh) * | 2022-10-26 | 2023-06-02 | 南京新米网络科技有限公司 | 多账户高速交易方法、装置、存储介质及电子装置 |
CN117172918A (zh) * | 2023-08-17 | 2023-12-05 | 中电金信软件有限公司 | 交易处理方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5608308B1 (ja) * | 2012-12-28 | 2014-10-15 | 楽天株式会社 | 情報アクセス装置、コンピュータプログラム、アクセス制御システム、携帯端末、携帯端末の制御方法、及び携帯端末の制御プログラム |
CN107274162A (zh) * | 2017-05-31 | 2017-10-20 | 深圳市长亮科技股份有限公司 | 一种高交易并发量的处理方法 |
CN109087086A (zh) * | 2018-08-01 | 2018-12-25 | 中信百信银行股份有限公司 | 控制热点账户交易的方法 |
CN109377355A (zh) * | 2018-12-07 | 2019-02-22 | 中国银行股份有限公司 | 交易数据处理方法及装置 |
CN110175900A (zh) * | 2019-04-30 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 一种缓冲补账方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014083709A1 (ja) * | 2012-11-30 | 2014-06-05 | 楽天株式会社 | 電子マネーシステム、電子バリュー移転方法、携帯端末、携帯端末の制御方法、プログラム及びプログラムが記録された記録媒体 |
CN106952158A (zh) * | 2017-03-17 | 2017-07-14 | 证通股份有限公司 | 解决热点账户问题的记账方法及设备 |
CN107493514B (zh) * | 2017-08-11 | 2020-10-09 | 北京小米移动软件有限公司 | 直播间数据处理方法、装置及计算机存储介质 |
CN109636369A (zh) * | 2018-11-02 | 2019-04-16 | 深圳市快付通金融网络科技服务有限公司 | 资金账户账务处理方法、装置、计算机设备及存储介质 |
CN109615514A (zh) * | 2018-11-27 | 2019-04-12 | 宝付网络科技(上海)有限公司 | 热点账户交易系统及方法 |
CN110060036B (zh) * | 2019-03-29 | 2023-01-10 | 宝付网络科技(上海)有限公司 | 一种拆分记账方法、账务系统及支付系统 |
-
2019
- 2019-12-12 CN CN201911274245.2A patent/CN111061748B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5608308B1 (ja) * | 2012-12-28 | 2014-10-15 | 楽天株式会社 | 情報アクセス装置、コンピュータプログラム、アクセス制御システム、携帯端末、携帯端末の制御方法、及び携帯端末の制御プログラム |
CN107274162A (zh) * | 2017-05-31 | 2017-10-20 | 深圳市长亮科技股份有限公司 | 一种高交易并发量的处理方法 |
CN109087086A (zh) * | 2018-08-01 | 2018-12-25 | 中信百信银行股份有限公司 | 控制热点账户交易的方法 |
CN109377355A (zh) * | 2018-12-07 | 2019-02-22 | 中国银行股份有限公司 | 交易数据处理方法及装置 |
CN110175900A (zh) * | 2019-04-30 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 一种缓冲补账方法及装置 |
Non-Patent Citations (4)
Title |
---|
Gregory Kelly ; Deborah Delaney ; Gary Chai ; Sherif Mohamed ; .Optimising local council's return on investment from annual pavement rehabilitation budgets through targeting of the average pavement condition index.Journal of Traffic and Transportation Engineering(English Edition).2016,(第05期),全文. * |
一个小型银行管理系统基本功能的设计与实现;叶洪帆;黄雪华;;大连民族学院学报(第03期);全文 * |
利用TimesTen内存数据库搭建高可用性的电信IT系统;蔡侠;;福建电脑(第06期);全文 * |
基于UML的银行存款系统业务建模;陈斌;;山西科技(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111061748A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111061748B (zh) | 一种热点账户的记账方法及装置 | |
US9965364B2 (en) | Fault tolerant listener registration in the presence of node crashes in a data grid | |
CN107391758B (zh) | 数据库切换方法、装置及设备 | |
KR101959153B1 (ko) | 데이터베이스에서의 계좌와 관련된 거래 요청의 효율적인 처리를 위한 시스템 | |
CN101364217B (zh) | 数据库中数据维护方法、设备及其系统 | |
CN101458705A (zh) | 一种不同应用系统间的数据核对方法、装置及系统 | |
CN101350022B (zh) | 基于数据库逻辑锁的变更处理方法 | |
CN110210845B (zh) | 用于区块链数据迁移的方法、装置、介质和计算设备 | |
CN111984447B (zh) | 一种银行交易超时或异常场景中的注册补偿系统及方法 | |
CN109146653A (zh) | 一种基于分布式环境的用于账务日切的核对方法及装置 | |
WO2021052237A1 (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
CN113064759A (zh) | 一种区块链数据回滚处理方法及其处理系统 | |
CN106897345A (zh) | 一种数据存储的方法及装置 | |
CN113742043B (zh) | 一种服务器后端任务异步拆分方法 | |
CN114564500A (zh) | 在区块链系统中实现结构化数据存储和查询的方法和系统 | |
CN110852752B (zh) | 充值订单撤销异常处理方法、装置、设备和存储介质 | |
CN102339305B (zh) | 基于偏序关系日志的数据库集群故障恢复方法 | |
CN106776153B (zh) | 作业控制方法及服务器 | |
CN102597995A (zh) | 同步数据库和非数据库资源 | |
CN113450223A (zh) | 基于utxo模型的交易处理方法、装置、设备及存储介质 | |
CN110677469B (zh) | 一种证券灾备系统及灾备实现方法 | |
CN113468150A (zh) | 一种支付签约数据的水平切分扩容与迁移方法 | |
CN114066476A (zh) | 一种解决分布式应用交易后发先至的方法、装置及存储介质 | |
CN111881149A (zh) | 一种基于Java的大规模并发解决方法及系统 | |
CN113268544B (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 |