【技术实现步骤摘要】
一种记账的方法及装置
本申请涉及信息
,尤其涉及一种记账的方法及装置。
技术介绍
记账是指将企事业单位、个人或者家庭发生的经济业务,按照一定的记录方法在账簿上记录的行为。在账务数据库的处理中,数据从一个账户转出,或者有数据转入一个账户,账户都会收到记账请求,并都有一个记账处理的过程。记账处理过程主要包括两部分,一是记录记账凭证,二是更新账户的余值。为了保证账户不被其他请求影响数据的准确性,在进行记账处理时,会先对账户的资源加锁,记账处理完毕后会自动释放锁。随着账务处理业务量的增大,账务数据库中的账户常常会在瞬间产生多个并发操作,但所有对应的并发线程中只有一个线程能够持有当前账户的资源锁,其他线程必须等待该锁被释放后再逐一进行记账处理,这样该账户将会被频繁加锁释锁,使该账户成为账务数据库热点,产生性能瓶颈点,严重影响账务数据库的性能。目前,随着无纸化办公的普及,通常由记账系统对各账户进行记账。而为了防止多个线程对同一个账户进行并发的记账操作,导致数据错误,在标准记账过程中,记账系统需要先对该账户写锁,使得只有持有该锁的线程可以对该账户进行操作,并在记账完成之后再释放该账户的锁。而对电子商务平台来说,交易业务存在高并发的特点。这就使得,标准记账过程对账户的写锁操作,严重影响了业务执行的效率。除了导致记账系统运行压力增大以外,还容易导致交易业务由于等待超时而失败。因此,在现有的电子商务平台的记账系统中,对于有高并发记账需求的账户,可预先为该账户配置缓冲记账的记账方法,以避免标准记账过程导致的一系列问题。具体的,在对账户进行缓冲记账时,记账系统无需实时更新该 ...
【技术保护点】
1.一种记账的方法,包括:针对接收到的每个记账请求,确定该记账请求针对的账户;当与该记账请求属于同一事务的其他记账请求中,存在针对所述账户的待处理的记账请求时,根据该记账请求以及所述待处理的记账请求,判断是否需要扣除所述账户的余额,若是,则获取所述账户的资源锁,进行记账操作,若否,则在不能获取所述账户的资源锁时,将该记账请求作为待处理的记账请求进行存储;当与该记账请求属于同一事务的其他记账请求中,不存在针对所述账户的待处理的记账请求时,根据该记账请求,判断是否需要扣除所述账户的余额,若是,则获取所述账户的资源锁,进行记账操作,若否,则在不能获取所述账户的资源锁时,将该记账请求作为待处理的记账请求进行存储。
【技术特征摘要】
1.一种记账的方法,包括:针对接收到的每个记账请求,确定该记账请求针对的账户;当与该记账请求属于同一事务的其他记账请求中,存在针对所述账户的待处理的记账请求时,根据该记账请求以及所述待处理的记账请求,判断是否需要扣除所述账户的余额,若是,则获取所述账户的资源锁,进行记账操作,若否,则在不能获取所述账户的资源锁时,将该记账请求作为待处理的记账请求进行存储;当与该记账请求属于同一事务的其他记账请求中,不存在针对所述账户的待处理的记账请求时,根据该记账请求,判断是否需要扣除所述账户的余额,若是,则获取所述账户的资源锁,进行记账操作,若否,则在不能获取所述账户的资源锁时,将该记账请求作为待处理的记账请求进行存储。2.如权利要求1所述的方法,判断是否需要扣除所述账户的余额之前,所述方法还包括:根据该记账请求,确定记账明细并存储,其中所述记账明细中包括对所述账户进行记账操作的金额。3.如权利要求2所述的方法,根据该记账请求以及所述待处理的记账请求,判断是否需要扣除所述账户的余额,具体包括:根据存储的所述待处理的记账请求的记账明细,以及该记账请求的记账明细,确定该记账请求以及所述待处理的记账请求的明细总额;判断所述明细总额的支出是否大于收入。4.如权利要求1所述的方法,所述记账请求对应的记账操作的操作类型包括:冻结、解冻、流出以及流入中的一种。5.如权利要求4所述的方法,根据该记账请求,判断是否需要扣除所述账户的余额,具体包括:确定该记账请求的操作类型;判断所述操作类型是否是流入操作类型以外的其他操作类型。6.如权利要求1所述的方法,当与该记账请求属于同一事务的其他记账请求中,存在针对所述账户的待处理的记账请求时;获取所述账户的资源锁,进行记账操作,具体包括:获取所述账户的资源锁,并根据该记账请求以及所述未处理的记账请求,对所述账户进行记账操作。7.如权利要求1所述的方法,当与该记账请求属于同一事务的其他记账请求中,不存在针对所述账户的待处理的记账请求时;获取所述账户的资源锁,进行记账操作,具体包括:获取所述账户的资源锁,并根据该记账请求对所述账户进行记账操作。8.如权利要求1所述的方法,当判断不需要扣除所述账户的余额,且获取到了所述账户的资源锁时,则根据该记账请求进行记账操作,或根据该记账请求以及所述待处理的记账请求进行记账操作。9.如权利要求1所述的方法,所述方法还包括:当所述事务结束之前,判断是否仍存储有针对所述账户的待处理的记账请求;若是,则获取所述账户的资源锁,并在根据已存储的若干针对所述账户的待处理的记账请求,进行记账操作之后,确定所述事务结束;若否,则确定所述事务结束。10.一种记账的装置,包括:请求确定模块,针对接收到的每个记账请求,确定该记账请求针对的账户;记账以及存储模块,当与该记账请求属于同一事务的其他记账请求中,存在针对所述账户的待处理的记账请求时,根据该记账请求以及所述待处理的记账请求,判断是否需要扣除所述账户的余额,若是,则获取所述账户的资源锁,进行记账操作,若否,则在不能获取所述账户的资源锁时,...
【专利技术属性】
技术研发人员:王磊,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。