一种业务数据的管理方法及装置
技术领域
本发明涉及互联网通信技术领域,具体而言,涉及一种业务数据的管理方法及装置。
背景技术
目前很多业务都是通过互联网来实现的,在业务进行过程中,用户及管理人员的操作都会导致业务数据的改变,因此业务服务器需要对业务数据进行管理,以确保业务数据调整的正确性及高效性。
当前,相关技术中提供了一种业务数据的管理方法,包括:将业务数据均分成多个子数据,在需要减少业务数据时,根据各子数据的额度及需扣减额度,从多个子数据中选择一个子数据,从该子数据中减去需扣减额度。
上述对业务数据管理时对业务数据进行均分,如此在业务数据扣减操作中将产生碎片归并问题和子数据选择问题,这些问题增加了业务数据管理的复杂度,降低了业务数据管理的效率。
发明内容
有鉴于此,本发明实施例的目的在于提供一种业务数据的管理方法及装置,以管理数据库来实现业务数据的扣减,以备份数据库对管理数据库中的业务数据进行矫正控制,避免现有业务数据管理中的碎片归并和子数据选择问题。
第一方面,本发明实施例提供了一种业务数据的管理方法,所述业务数据存储于管理数据库和备份数据库中,所述方法包括:
接收扣减请求信息,所述扣减请求信息包括扣减额度;
根据所述管理数据库对应的扣减状态位、所述管理数据库存储的业务数据及所述扣减额度,判断是否执行扣减操作;
如果是,则从所述管理数据库存储的业务数据中减去所述扣减额度;如果否,则根据历史操作明细及所述备份数据库存储的业务数据对所述管理数据库中的业务数据进行矫正,根据所述管理数据库中矫正后的业务数据和所述扣减额度进行扣减操作。
结合第一方面,本发明实施例提供了上述第一方面的第一种可能的实现方式,其中,所述根据所述管理数据库对应的扣减状态位、所述管理数据库存储的业务数据及所述扣减额度,判断是否执行扣减操作,包括:
查看所述管理数据库对应的扣减状态位,当所述扣减状态位指示正在扣减时,结束操作;
当所述扣减状态位指示空闲时,设置所述扣减状态位指示为正在扣减,并确定所述管理数据库存储的业务数据是否大于或等于所述扣减额度,如果是,则判断执行扣减操作,如果否,则判断不执行扣减操作。
结合第一方面,本发明实施例提供了上述第一方面的第二种可能的实现方式,其中,所述根据历史操作明细及所述备份数据库存储的业务数据对所述管理数据库中的业务数据进行矫正,包括:
设置所述备份数据库对应的重置状态位指示为正在重置;
根据历史操作明细及所述备份数据库存储的业务数据,重新计算当前实际的业务数据;
将所述管理数据库存储的业务数据替换为所述当前实际的业务数据。
结合第一方面,本发明实施例提供了上述第一方面的第三种可能的实现方式,其中,所述根据所述管理数据库中矫正后的业务数据和所述扣减额度进行扣减操作,包括:
判断所述管理数据库中矫正后的业务数据是否大于或等于所述扣减额度;
如果是,则从所述矫正后的业务数据中减去所述扣减额度,如果否,则确定所述管理数据库中的业务数据余额不足。
结合第一方面,本发明实施例提供了上述第一方面的第四种可能的实现方式,其中,所述方法还包括:
接收业务数据调整指令,所述业务数据调整指令包括待调整的业务数据;
设置所述备份数据库对应的重置状态位指示正在重置;
根据历史操作明细和所述待调整的业务数据,计算当前实际的业务数据;
将所述管理数据库及所述备份数据库存储的业务数据均替换为所述当前实际的业务数据。
结合第一方面,本发明实施例提供了上述第一方面的第五种可能的实现方式,其中,所述方法还包括:
每隔预设时间段根据历史操作明细和所述备份数据库存储的业务数据,重新计算当前实际的业务数据;
在检测到所述管理数据库存储的业务数据与所述当前实际的业务数据不同时,将所述管理数据库存储的业务数据替换为所述当前实际的业务数据。
结合第一方面,本发明实施例提供了上述第一方面的第六种可能的实现方式,其中,所述方法还包括:
将所述管理数据库存储的业务数据替换为所述当前实际的业务数据之后,设置所述备份数据库对应的重置状态位指示为空闲;或者,在设置所述重置状态位指示正在重置时,设置所述重置状态位对应的重置失效时间,在当前时间到达所述重置失效时间时,设置所述重置状态位指示为空闲;
在历史操作明细中记录所述当前实际的业务数据。
结合第一方面,本发明实施例提供了上述第一方面的第七种可能的实现方式,其中,所述方法还包括:
完成扣减操作后或者确定业务数据余额不足时,设置所述管理数据库对应的扣减状态位指示空闲;或者,在设置所述扣减状态位指示正在扣减时,设置所述扣减状态位对应的扣减失效时间,在当前时间到达所述扣减失效时间时,设置所述扣减状态位指示为空闲;
在历史操作明细中记录所述扣减操作的明细信息。
结合第一方面的第六种可能的实现方式,本发明实施例提供了上述第一方面的第八种可能的实现方式,其中,所述方法还包括:
设置所述重置状态位对应的重置延时时间,若在当前时间到达所述重置失效时间时检测到重置操作未完成,则将所述重置失效时间增加所述重置延时时间。
结合第一方面的第七种可能的实现方式,本发明实施例提供了上述第一方面的第九种可能的实现方式,其中,所述方法还包括:
设置所述扣减状态位对应的扣减延时时间,若在当前时间到达所述扣减失效时间时检测到扣减操作未完成,则将所述扣减失效时间增加所述扣减延时时间。
结合第一方面,本发明实施例提供了上述第一方面的第十种可能的实现方式,其中,所述管理数据库为redis数据库,所述备份数据库为mysql数据库。
第二方面,本发明实施例提供了一种业务数据的管理装置,所述业务数据存储于管理数据库和备份数据库中,所述装置包括:
接收模块,用于接收扣减请求信息,所述扣减请求信息包括扣减额度;
判断模块,用于根据所述管理数据库对应的扣减状态位、所述管理数据库存储的业务数据及所述扣减额度,判断是否执行扣减操作;
扣减模块,用于如果是,则从所述管理数据库存储的业务数据中减去所述扣减额度;如果否,则根据历史操作明细及所述备份数据库存储的业务数据对所述管理数据库中的业务数据进行矫正,根据所述管理数据库中矫正后的业务数据和所述扣减额度进行扣减操作。
结合第二方面,本发明实施例提供了上述第二方面的第一种可能的实现方式,其中,所述判断模块包括:
查看单元,用于查看所述管理数据库对应的扣减状态位,当所述扣减状态位指示正在扣减时,结束操作;
第一判断单元,用于当所述扣减状态位指示空闲时,设置所述扣减状态位指示为正在扣减,并确定所述管理数据库存储的业务数据是否大于或等于所述扣减额度,如果是,则判断执行扣减操作,如果否,则判断不执行扣减操作。
结合第二方面,本发明实施例提供了上述第二方面的第二种可能的实现方式,其中,所述扣减模块包括:
设置单元,用于设置所述备份数据库对应的重置状态位指示为正在重置;
计算单元,用于根据历史操作明细及所述备份数据库存储的业务数据,重新计算当前实际的业务数据;
替换单元,用于将所述管理数据库存储的业务数据替换为所述当前实际的业务数据。
结合第二方面,本发明实施例提供了上述第二方面的第三种可能的实现方式,其中,所述扣减模块包括:
第二判断单元,用于判断所述管理数据库中矫正后的业务数据是否大于或等于所述扣减额度;
减去单元,用于当所述第二判断单元判断所述矫正后的业务数据大于或等于所述扣减额度时,从所述矫正后的业务数据中减去所述扣减额度;
确定单元,用于当所述第二判断单元判断所述矫正后的业务数据小于或等于所述扣减额度时,确定所述管理数据库中的业务数据余额不足。
结合第二方面,本发明实施例提供了上述第二方面的第四种可能的实现方式,其中,所述装置还包括:
所述接收模块,还用于接收业务数据调整指令,所述业务数据调整指令包括待调整的业务数据;
第一设置模块,用于设置所述备份数据库对应的重置状态位指示正在重置;
计算模块,用于根据历史操作明细和所述待调整的业务数据,计算当前实际的业务数据;
第一替换模块,用于将所述管理数据库及所述备份数据库存储的业务数据均替换为所述当前实际的业务数据。
结合第二方面,本发明实施例提供了上述第二方面的第五种可能的实现方式,其中,所述装置还包括:
重新计算模块,用于每隔预设时间段根据历史操作明细和所述备份数据库存储的业务数据,重新计算当前实际的业务数据;
第二替换模块,用于在检测到所述管理数据库存储的业务数据与所述当前实际的业务数据不同时,将所述管理数据库存储的业务数据替换为所述当前实际的业务数据。
结合第二方面,本发明实施例提供了上述第二方面的第六种可能的实现方式,其中,所述装置还包括:
第二设置模块,用于将所述管理数据库存储的业务数据替换为所述当前实际的业务数据之后,设置所述备份数据库对应的重置状态位指示为空闲;或者,在设置所述重置状态位指示正在重置时,设置所述重置状态位对应的重置失效时间,在当前时间到达所述重置失效时间时,设置所述重置状态位指示为空闲;
第一记录模块,用于在历史操作明细中记录所述当前实际的业务数据。
结合第二方面,本发明实施例提供了上述第二方面的第七种可能的实现方式,其中,所述装置还包括:
第三设置模块,用于完成扣减操作后或者确定业务数据余额不足时,设置所述管理数据库对应的扣减状态位指示空闲;或者,在设置所述扣减状态位指示正在扣减时,设置所述扣减状态位对应的扣减失效时间,在当前时间到达所述扣减失效时间时,设置所述扣减状态位指示为空闲;
第二记录模块,用于在历史操作明细中记录所述扣减操作的明细信息。
结合第二方面的第六种可能的实现方式,本发明实施例提供了上述第二方面的第八种可能的实现方式,其中,所述装置还包括:
重置延时设置模块,用于设置所述重置状态位对应的重置延时时间,若在当前时间到达所述重置失效时间时检测到重置操作未完成,则将所述重置失效时间增加所述重置延时时间。
结合第二方面的第七种可能的实现方式,本发明实施例提供了上述第二方面的第九种可能的实现方式,其中,所述装置还包括:
扣减延时设置模块,用于设置所述扣减状态位对应的扣减延时时间,若在当前时间到达所述扣减失效时间时检测到扣减操作未完成,则将所述扣减失效时间增加所述扣减延时时间。
结合第二方面,本发明实施例提供了上述第二方面的第十种可能的实现方式,其中,所述管理数据库为redis数据库,所述备份数据库为mysql数据库。
第三方面,本发明实施例提供了一种业务数据的管理装置,所述装置包括:处理器、存储器、总线和通信接口,所述处理器、所述通信接口和所述存储器通过所述总线连接;
所述存储器用于存储程序;
所述处理器,用于通过所述总线调用存储在所述存储器中的程序,执行所述权利要求1-11任一项所述的方法。
在本发明实施例提供的方法及装置中,业务数据存储于管理数据库和备份数据库中;接收扣减请求信息,扣减请求信息包括扣减额度;根据管理数据库对应的扣减状态位、管理数据库存储的业务数据及扣减额度,判断是否执行扣减操作;如果是,则从管理数据库存储的业务数据中减去扣减额度;如果否,则根据历史操作明细及备份数据库存储的业务数据对管理数据库中的业务数据进行矫正,根据管理数据库中矫正后的业务数据和扣减额度进行扣减操作。本发明以管理数据库来实现业务数据的扣减,以备份数据库对管理数据库中的业务数据进行矫正控制,避免了现有业务数据管理中的碎片归并和子数据选择问题,降低业务数据管理的复杂度,提高管理效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例1所提供的一种业务数据的管理方法流程图;
图2示出了本发明实施例2所提供的一种业务数据的管理装置的结构示意图;
图3示出了本发明实施例3所提供的一种业务数据的管理装置的结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到对业务数据管理时,相关技术对业务数据进行均分,如此在业务数据扣减操作中将产生碎片归并问题和子数据选择问题,这些问题增加了业务数据管理的复杂度,降低了业务数据管理的效率。基于此,本发明实施例提供了一种业务数据的管理方法及装置。下面通过实施例进行描述。
实施例1
本发明实施例提供了一种业务数据的管理方法。本发明实施例的执行主体为业务服务器,在业务服务器中设置管理数据库和备份数据库,业务数据存储于管理数据库和备份数据库中。本发明实施例中,管理数据库可以为redis数据库,备份数据库可以为mysql数据库。本发明实施例通过该管理数据库来实现业务数据的管理,并通过备份数据库对管理数据库中的业务数据进行矫正控制,如此可避免现有业务数据管理中的碎片归并和子数据选择问题,降低业务数据管理的复杂度,提高管理效率。
参见图1,该方法具体包括以下步骤:
步骤101:接收扣减请求信息,扣减请求信息包括扣减额度。
在基于网络实现的业务中,一般制定有相应的业务规则,当用户满足业务规则时,可以请求业务服务器进行业务扣减操作。例如,在电子商务业务中,业务规则可以为“满100立减50”等,当用户在电子商务业务中的操作符合“满100立减50”的业务规则时,用户可以请求业务服务器对其进行扣减50的操作。
当用户满足业务规则时,用户通过用户终端发送扣减请求信息给业务服务器,该扣减请求信息包括扣减额度。业务服务器接收该扣减请求信息。
在本发明实施例中,上述扣减请求信息中还可以包括业务规则对应的规则标识。业务服务器接收到该扣减请求信息时,首先进行扣减前置校验操作,即校验扣减请求信息包括的扣减额度是否为大于或等于0的数值,以及校验扣减请求信息包括的规则标识对应的业务规则是否存在且是否过期。
在接收到扣减请求信息,并对该扣减请求信息进行校验操作后,通过步骤102-104的操作来进行该扣减请求信息对应的扣减操作。
步骤102:根据管理数据库对应的扣减状态位、管理数据库存储的业务数据及扣减额度,判断是否执行扣减操作,如果是,则执行步骤103,如果否,则执行步骤104。
本发明实施例中,设置了管理数据库对应的扣减状态位,当管理数据库为redis数据库时,该扣减状态位可以为beta锁。扣减状态位可以有多种赋值方式,如扣减状态位可赋值为true或false,或者赋值为1或0等。扣减状态位的不同赋值指示不同的扣减状态,如当扣减状态位赋值为true或1时指示为正在扣减,当扣减状态位赋值为false或0时指示为空闲。
本发明实施例中不具体限定扣减状态位的赋值方式及赋值对应的扣减状态,具体操作中可根据实际需求来选择扣减状态位的赋值方式及赋值对应的扣减状态。
业务服务器根据管理数据库对应的扣减状态位、管理数据库存储的业务数据及扣减额度,采用如下方式来判断是否执行扣减操作,包括:
查看管理数据库对应的扣减状态位,当扣减状态位指示正在扣减时,结束操作;当扣减状态位指示空闲时,设置扣减状态位指示为正在扣减,并确定管理数据库存储的业务数据是否大于或等于扣减额度,如果是,则判断执行扣减操作,如果否,则判断不执行扣减操作。
当管理数据库对应的扣减状态位指示正在扣减时,表明当前存在正在访问管理数据库的扣减线程,此时为了确保扣减操作的正确性,需结束扣减请求信息对应的扣减操作。本发明实施例中,可先暂停扣减请求信息对应的扣减操作,然后每隔一定时间段查看管理数据库对应的扣减状态位,直到扣减状态位指示为空闲时,继续执行该扣减请求信息对应的扣减操作。上述一定时间段可以为20秒或40秒等。
当管理数据库对应的扣减状态位指示空闲时,表示当前不存在正在访问管理数据库的扣减线程,此时设置该扣减状态位指示为正在扣减,以锁定管理数据库的扣减访问,确保对管理数据库的扣减操作为单线程操作,从而保证了对管理数据库进行扣减操作的数据可靠性和安全性。
在设置扣减状态位指示为正在扣减后,还需确定管理数据库存储的业务数据是否大于或等于扣减请求信息包括的扣减额度,若大于或等于,则判断可以执行扣减操作,若小于,则表明管理数据库存储的业务数据余额不足,判断不执行扣减操作。
步骤103:从管理数据库存储的业务数据中减去扣减额度,结束操作。
当步骤102判断可以执行扣减操作时,从管理数据库存储的业务数据中减去扣减额度,得到扣减后的业务数据。将管理数据库中存储的业务数据替换为该扣减后的业务数据。
执行完上述扣减操作后,还需设置管理数据库对应的扣减状态位指示为空闲,以释放对管理数据库的扣减操作的锁定,使其他扣减线程可以访问管理数据库。
另外,本发明实施例,还可以在设置扣减状态位指示正在扣减的同时,设置该扣减状态位对应的扣减失效时间,该扣减失效时间可以为5分钟或10分钟等。业务服务器从设置扣减状态位指示正在扣减开始,检测当前时间是否到达该扣减失效时间,在检测到当前时间到达扣减失效时间时,设置扣减状态位指示为空闲,以释放对管理数据库的扣减操作的锁定。
当然,在上述设置扣减失效时间的机制中,可能存在当前时间到达扣减失效时间时扣减操作尚未完成的情况,因此本发明实施例中还设置扣减状态位对应的扣减延时时间,该扣减延时时间可以为10秒或20秒等。在当前时间到达扣减失效时间时若检测到扣减操作未完成,则将扣减失效时间增加该扣减延时时间,直至扣减操作完成为止。
本发明实施例中,业务服务器还维护一个历史操作明细,该历史操作明细中存储了最初技术人员设定的业务数据及过去对业务数据进行操作的明细信息。通过上述方式执行扣减操作之后,还将该扣减操作对应的明细信息存储在上述历史操作明细中,该扣减操作对应的明细信息包括扣减前管理数据库中的业务数据、扣减额度及扣减后的业务数据。
步骤104:根据历史操作明细及备份数据库存储的业务数据对管理数据库中的业务数据进行矫正,根据管理数据库中矫正后的业务数据和扣减额度进行扣减操作。
由于管理数据库中的业务数据变动频繁,所以管理数据库中的业务数据存在数据错误的可能性,因此当步骤102判断出管理数据库中的业务数据余额不足,不能执行扣减操作时,需通过备份数据库对管理数据库中的业务数据进行矫正,以防止管理数据库中的业务数据存在数据操作导致扣减失败的情况。
本发明实施例中,设置了备份数据库对应的重置状态位,当备份数据库为mysql数据库时,该重置状态位可以为alpha锁。重置状态位可以有多种赋值方式,如重置状态位可赋值为true或false,或者赋值为1或0等。重置状态位的不同赋值指示不同的重置状态,如当重置状态位赋值为true或1时指示为正在重置,当重置状态位赋值为false或0时指示为空闲。
本发明实施例中不具体限定重置状态位的赋值方式及赋值对应的扣减状态,具体操作中可根据实际需求来选择重置状态位的赋值方式及赋值对应的扣减状态。
通过备份数据库对管理数据库中的业务数据进行矫正的具体操作,包括:
设置备份数据库对应的重置状态位指示为正在重置;根据历史操作明细及备份数据库存储的业务数据,重新计算当前实际的业务数据;将管理数据库存储的业务数据替换为当前实际的业务数据。
在对管理数据库中的业务数据进行矫正时,首先查看备份数据库对应的重置状态位,若该重置状态位指示为正在重置,则表明当前存在正在访问备份数据库的重置线程,此时为了确保重置操作的正确性,需先暂停当前的矫正操作,然后每隔一定时间段查看备份数据库对应的重置状态位,直到重置状态位指示为空闲时,继续执行该矫正操作。上述一定时间段可以为10秒或30秒等。
当备份数据库对应的重置状态位指示空闲时,表示当前不存在正在访问备份数据库的重置线程,此时设置该重置状态位指示为正在重置,以锁定备份数据库的重置访问,确保对备份数据库的重置访问为单线程操作,从而保证了对备份数据库进行重置访问及对管理数据库进行矫正操作的数据可靠性和安全性。
在设置重置状态位指示为正在重置,锁定备份数据库的重置访问后,从历史操作明细中获取最初技术人员设定的业务数据及过去对业务数据进行操作的明细信息,根据最初的业务数据、过去进行操作的明细信息及当前备份数据库中的业务数据,计算当前实际的业务数据。将管理数据库存储的业务数据替换为当前实际的业务数据。
本发明实施例,还可以先比较当前实际的业务数据与此时管理数据库存储的业务数据,若两者不相同,则将管理数据库存储的业务数据替换为当前实际的业务数据,若两者相同,则不进行替换操作。
通过上述方式将管理数据库存储的业务数据替换为当前实际的业务数据,完成对管理数据库的矫正操作之后,还将计算的当前实际的业务数据记录在历史操作明细中。另外,还需设置备份数据库对应的重置状态位指示为空闲,以释放对备份数据库的重置访问的锁定,使其他重置线程可以访问备份数据库。
另外,本发明实施例,还可以在设置重置状态位指示正在重置的同时,设置该重置状态位对应的重置失效时间,该重置失效时间可以为5分钟或10分钟等。业务服务器从设置重置状态位指示正在重置开始,检测当前时间是否到达该重置失效时间,在检测到当前时间到达重置失效时间时,设置重置状态位指示为空闲,以释放对备份数据库的重置访问的锁定。
当然,在上述设置重置失效时间的机制中,可能存在当前时间到达重置失效时间时重置操作尚未完成的情况,因此本发明实施例中还设置重置状态位对应的重置延时时间,该重置延时时间可以为10秒或20秒等。在当前时间到达重置失效时间时若检测到重置操作未完成,则将重置失效时间增加该重置延时时间,直至重置操作完成为止。
通过上述方式对管理数据库中的业务数据进行矫正之后,再通过如下操作来进行扣减请求信息对应的扣减操作,具体包括:
判断管理数据库中矫正后的业务数据是否大于或等于扣减额度;如果是,则从矫正后的业务数据中减去扣减额度,如果否,则确定管理数据库中的业务数据余额不足。
当判断出管理数据库中矫正后的业务数据小于扣减额度时,表明当前实际的业务数据余额不足,无法进行此次扣减请求信息对应的扣减操作,此时业务服务器可发送用于提示扣减失败的提示信息给用户终端,以提示用户无法进行扣减操作。
当从矫正后的业务数据中减去扣减额度时,需将扣减操作对应的明细信息存储在历史操作明细中,该扣减操作对应的明细信息包括矫正后的业务数据、扣减额度及扣减后的业务数据。当上述确定出管理数据库中的业务数据余额不足时,也需将该业务数据余额不足的信息存储在历史操作明细中。
当矫正后的业务数据中减去扣减额度,或者确定出管理数据库中的业务数据余额不足时,还需设置管理数据库对应的扣减状态位指示空闲,释放对管理数据库的扣减操作的锁定。
同样地,本发明实施例,还可以在设置扣减状态位指示正在扣减的同时,设置该扣减状态位对应的扣减失效时间和扣减延时时间,并从设置扣减状态位指示正在扣减开始,检测当前时间是否到达该扣减失效时间,在检测到当前时间到达扣减失效时间时,若检测到扣减操作未完成,则将扣减失效时间增加该扣减延时时间,直至扣减操作完成为止。
由于在业务进行过程中,技术人员可根据参与该业务的用户数量及最初设定的业务数据来适时调整业务数据,如当参与该业务的用户数量很大,而最初设定的业务数据的额度过小时,需要增加业务数据,以满足参与该业务的用户的操作需求。
当需要调整业务数据时,技术人员触发业务数据调整指令,该业务数据调整指令包括待调整的业务数据。此时业务服务器接收该业务数据调整指令,设置备份数据库对应的重置状态位指示正在重置;根据历史操作明细和待调整的业务数据,计算当前实际的业务数据;将管理数据库及备份数据库存储的业务数据均替换为当前实际的业务数据。
同样地,在设置重置状态位之前,需查看重置状态位,直到重置状态位指示为空闲时,才可以设置重置状态位指示正在重置,然后根据历史操作明细和待调整的业务数据,计算当前实际的业务数据,并将管理数据库及备份数据库中存储的业务数据均替换为当实际的业务数据。
由于备份数据库中的业务数据也可能在业务进行过程中出现数据错误的情况,所以本发明实施例中还对备份数据库中的业务数据进行周期性核算,即每隔预设时间段根据历史操作明细和备份数据库存储的业务数据,重新计算当前实际的业务数据。
计算出当前实际的业务数据后,还检测当前管理数据库存储的业务数据是否与该当前实际的业务数据相同,并在检测到管理数据库存储的业务数据与当前实际的业务数据不同时,将管理数据库存储的业务数据替换为当前实际的业务数据。
本发明实施例通过管理数据库和备份数据库来管理业务数据,采用扣减状态位和重置状态位的分布锁机制来控制业务数据的调整,保证了业务数据调整过程中的单线程操作,提高了业务数据管理的效率,确保了业务数据调整过程中的数据可靠性和安全性。另外,管理数据库可以采用redis数据库,备份数据库可以采用mysql数据库,有效提升了业务数据的管理性能,并通过历史操作明细来存储业务数据的扣减及矫正操作的明细信息,有效的控制了业务数据的增减,降低了业务数据管理的复杂度。
在本发明实施例中,业务数据存储于管理数据库和备份数据库中;接收扣减请求信息,扣减请求信息包括扣减额度;根据管理数据库对应的扣减状态位、管理数据库存储的业务数据及扣减额度,判断是否执行扣减操作;如果是,则从管理数据库存储的业务数据中减去扣减额度;如果否,则根据历史操作明细及备份数据库存储的业务数据对管理数据库中的业务数据进行矫正,根据管理数据库中矫正后的业务数据和扣减额度进行扣减操作。本发明以管理数据库来实现业务数据的扣减,以备份数据库对管理数据库中的业务数据进行矫正控制,避免了现有业务数据管理中的碎片归并和子数据选择问题,降低业务数据管理的复杂度,提高管理效率。
实施例2
参见图2,本发明实施例提供了一种业务数据的管理装置,业务数据存储于管理数据库和备份数据库中。该管理装置用于执行上述实施例1提供的业务数据的管理方法,该装置具体包括:
接收模块201,用于接收扣减请求信息,扣减请求信息包括扣减额度;
判断模块202,用于根据管理数据库对应的扣减状态位、管理数据库存储的业务数据及扣减额度,判断是否执行扣减操作;
扣减模块203,用于如果是,则从管理数据库存储的业务数据中减去扣减额度;如果否,则根据历史操作明细及备份数据库存储的业务数据对管理数据库中的业务数据进行矫正,根据管理数据库中矫正后的业务数据和扣减额度进行扣减操作。
上述判断模块202通过如下查看单元和第一判断单元来判断是否执行扣减操作。
查看单元,用于查看管理数据库对应的扣减状态位,当扣减状态位指示正在扣减时,结束操作;第一判断单元,用于当扣减状态位指示空闲时,设置扣减状态位指示为正在扣减,并确定管理数据库存储的业务数据是否大于或等于扣减额度,如果是,则判断执行扣减操作,如果否,则判断不执行扣减操作。
本发明实施例中,扣减模块203通过如下设置单元、计算单元和替换单元来对管理数据库中的业务数据进行矫正。
设置单元,用于设置备份数据库对应的重置状态位指示为正在重置;计算单元,用于根据历史操作明细及备份数据库存储的业务数据,重新计算当前实际的业务数据;替换单元,用于将管理数据库存储的业务数据替换为当前实际的业务数据。
扣减模块203通过第二判断单元、减去单元和确定单元来根据管理数据库中矫正后的业务数据和扣减额度进行扣减操作。
第二判断单元,用于判断管理数据库中矫正后的业务数据是否大于或等于扣减额度;减去单元,用于当第二判断单元判断矫正后的业务数据大于或等于扣减额度时,从矫正后的业务数据中减去扣减额度;确定单元,用于当第二判断单元判断矫正后的业务数据小于或等于扣减额度时,确定管理数据库中的业务数据余额不足。
由于在业务进行过程中,技术人员可根据参与该业务的用户数量及最初设定的业务数据来适时调整业务数据,如当参与该业务的用户数量很大,而最初设定的业务数据的额度过小时,需要增加业务数据,以满足参与该业务的用户的操作需求。
当需要调整业务数据时,技术人员触发业务数据调整指令,上述接收模块201,还用于接收业务数据调整指令,业务数据调整指令包括待调整的业务数据;
之后该装置还通过第一设置模块、计算模块和第一替换模块来对业务数据进行调整。
第一设置模块,用于设置备份数据库对应的重置状态位指示正在重置;计算模块,用于根据历史操作明细和待调整的业务数据,计算当前实际的业务数据;第一替换模块,用于将所述管理数据库及所述备份数据库存储的业务数据均替换为所述当前实际的业务数据。
由于备份数据库中的业务数据也可能在业务进行过程中出现数据错误的情况,所以该装置还通过如下重新计算模块和第二替换模块来对备份数据库中的业务数据进行周期性核算。
重新计算模块,用于每隔预设时间段根据历史操作明细和备份数据库存储的业务数据,重新计算当前实际的业务数据;第二替换模块,用于在检测到管理数据库存储的业务数据与当前实际的业务数据不同时,将管理数据库存储的业务数据替换为当前实际的业务数据。
在本发明实施例中,该装置还包括:
第二设置模块,用于将管理数据库存储的业务数据替换为当前实际的业务数据之后,设置备份数据库对应的重置状态位指示为空闲;或者,在设置重置状态位指示正在重置时,设置重置状态位对应的重置失效时间,在当前时间到达重置失效时间时,设置重置状态位指示为空闲;第一记录模块,用于在历史操作明细中记录当前实际的业务数据。
第三设置模块,用于完成扣减操作后或者确定业务数据余额不足时,设置管理数据库对应的扣减状态位指示空闲;或者,在设置扣减状态位指示正在扣减时,设置扣减状态位对应的扣减失效时间,在当前时间到达扣减失效时间时,设置扣减状态位指示为空闲;第二记录模块,用于在历史操作明细中记录扣减操作的明细信息。
在本发明实施例中,该装置还包括:重置延时设置模块,用于设置重置状态位对应的重置延时时间,若在当前时间到达重置失效时间时检测到重置操作未完成,则将重置失效时间增加重置延时时间。
扣减延时设置模块,用于设置扣减状态位对应的扣减延时时间,若在当前时间到达扣减失效时间时检测到扣减操作未完成,则将扣减失效时间增加扣减延时时间。
本发明实施例中,管理数据库为redis数据库,备份数据库为mysql数据库。
在本发明实施例中,业务数据存储于管理数据库和备份数据库中;接收扣减请求信息,扣减请求信息包括扣减额度;根据管理数据库对应的扣减状态位、管理数据库存储的业务数据及扣减额度,判断是否执行扣减操作;如果是,则从管理数据库存储的业务数据中减去扣减额度;如果否,则根据历史操作明细及备份数据库存储的业务数据对管理数据库中的业务数据进行矫正,根据管理数据库中矫正后的业务数据和扣减额度进行扣减操作。本发明以管理数据库来实现业务数据的扣减,以备份数据库对管理数据库中的业务数据进行矫正控制,避免了现有业务数据管理中的碎片归并和子数据选择问题,降低业务数据管理的复杂度,提高管理效率。
实施例3
参见图3,本发明实施例提供了一种业务数据的管理装置,该装置用于执行上述实施例1提供的业务数据的管理方法。该装置具体包括:
处理器301、存储器302、总线303和通信接口304,处理器301、通信接口304和存储器302通过总线303连接;
存储器302用于存储程序;
处理器301,用于通过总线303调用存储在存储器302中的程序,执行实施例1提供的业务数据的管理方法。
处理器301在执行实施例1提供的业务数据的管理方法时,业务数据存储于管理数据库和备份数据库中;接收扣减请求信息,扣减请求信息包括扣减额度;根据管理数据库对应的扣减状态位、管理数据库存储的业务数据及扣减额度,判断是否执行扣减操作;如果是,则从管理数据库存储的业务数据中减去扣减额度;如果否,则根据历史操作明细及备份数据库存储的业务数据对管理数据库中的业务数据进行矫正,根据管理数据库中矫正后的业务数据和扣减额度进行扣减操作。
处理器301执行实施例1提供的方法的执行细节与实施例1中描述的内容相同,在此不再赘述。
在本发明实施例中,业务数据存储于管理数据库和备份数据库中;接收扣减请求信息,扣减请求信息包括扣减额度;根据管理数据库对应的扣减状态位、管理数据库存储的业务数据及扣减额度,判断是否执行扣减操作;如果是,则从管理数据库存储的业务数据中减去扣减额度;如果否,则根据历史操作明细及备份数据库存储的业务数据对管理数据库中的业务数据进行矫正,根据管理数据库中矫正后的业务数据和扣减额度进行扣减操作。本发明以管理数据库来实现业务数据的扣减,以备份数据库对管理数据库中的业务数据进行矫正控制,避免了现有业务数据管理中的碎片归并和子数据选择问题,降低业务数据管理的复杂度,提高管理效率。
本发明实施例所提供的业务数据的管理装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程。
在本申请所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。