一种数据处理方法、装置、节点设备及存储介质制造方法及图纸

技术编号:25550918 阅读:37 留言:0更新日期:2020-09-08 18:50
本申请实施例公开了一种数据处理方法、装置、节点设备及存储介质,适用于大数据中的数据存储领域,该方法包括:获取与K个程序相关联的原子操作接口,调用原子操作接口对K个程序中的每个程序执行原子操作,得到参与竞争分布式锁的每个程序的原子操作结果;在每个程序的原子操作结果中获取具有第一参数值的目标原子操作结果,将目标原子操作结果对应的程序确定为目标程序;通过分布式锁对目标程序进行加锁处理,以使加锁处理后的目标程序访问共享资源;基于共享资源在加锁处理后的目标程序中执行开票业务;在完成开票业务时,对加锁处理后的目标程序执行解锁处理,以释放分布式锁。采用本申请实施例,可以提高数据读取的准确性。

【技术实现步骤摘要】
一种数据处理方法、装置、节点设备及存储介质
本申请涉及区块链
,尤其涉及一种数据处理方法、装置、节点设备及存储介质。
技术介绍
目前,CPU(CentralProcessingUnit,中央处理单元)在某一程序执行开票业务时,基于从数据库中读取到的目标票据号码,可以生成与该开票业务相关联的电子票据。然而,在多个程序(例如,程序A和程序B)并行执行时,由于突然断电或者掉线等原因,CPU可能会在程序A未执行完成的情况下中断程序A,从而使得该CPU所执行的程序由程序A跳转至程序B。例如,若CPU执行在程序A的过程中,可以从数据库中读取目标票据号码(例如,票据号码1),以生成电子票据a,但在CPU读取票据号码1且未生成电子票据a时,因停电、掉线等原因导致程序A发生中断,从而使得CPU跳转至程序B。此时,CPU在执行程序B以生成电子票据b的过程中,依旧存在从数据库获取到已被程序1读取过的票据号码1的可能性,并可以基于票据号码1生成电子票据b。但是,当CPU恢复执行程序1时,仍会基于读取到的该票据号码1同步生成电子票据a,进而导致业务数据结果本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n获取与K个程序相关联的原子操作接口,调用所述原子操作接口对所述K个程序中的每个程序执行原子操作,得到参与竞争分布式锁的所述每个程序的原子操作结果;K为正整数;所述分布式锁用于访问与区块链中的开票业务相关联的共享资源;/n在所述每个程序的原子操作结果中获取具有第一参数值的目标原子操作结果,将所述目标原子操作结果对应的程序确定为目标程序;/n通过所述分布式锁对所述目标程序进行加锁处理,以使加锁处理后的目标程序访问所述共享资源;/n基于所述共享资源在所述加锁处理后的目标程序中执行所述开票业务;/n在完成所述开票业务时,对所述加锁处理后的目标程序执行解锁处理...

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
获取与K个程序相关联的原子操作接口,调用所述原子操作接口对所述K个程序中的每个程序执行原子操作,得到参与竞争分布式锁的所述每个程序的原子操作结果;K为正整数;所述分布式锁用于访问与区块链中的开票业务相关联的共享资源;
在所述每个程序的原子操作结果中获取具有第一参数值的目标原子操作结果,将所述目标原子操作结果对应的程序确定为目标程序;
通过所述分布式锁对所述目标程序进行加锁处理,以使加锁处理后的目标程序访问所述共享资源;
基于所述共享资源在所述加锁处理后的目标程序中执行所述开票业务;
在完成所述开票业务时,对所述加锁处理后的目标程序执行解锁处理,以释放所述分布式锁。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收用户终端所发送的与开票业务相关联的业务处理请求;
在确定所述业务处理请求为合法请求时,获取与所述开票业务相关联的K个程序,执行所述获取与K个程序相关联的原子操作接口,调用所述原子操作接口对所述K个程序中的每个程序执行第一原子操作,得到参与竞争分布式锁的所述每个程序的锁状态参数的步骤。


3.根据权利要求2所述的方法,其特征在于,所述业务处理请求中包含所述用户终端对应的票据请求用户所提交的业务关键信息和用户签名信息;所述用户签名信息为所述用户终端通过所述票据请求用户的用户私钥对所述业务关键信息进行签名后所得到的;
所述方法还包括:
获取所述用户私钥对应的用户公钥,基于所述用户公钥对所述用户签名信息进行验签,得到验签结果;
若所述验签结果指示验证成功,则确定所述票据请求用户为合法用户,且将所述用户终端所发起的所述业务处理请求确定为合法请求;
若所述验签结果指示验证失败,则确定所述票据请求用户为非法用户,且将所述用户终端所发起的所述业务处理请求确定为非法请求。


4.根据权利要求1所述的方法,其特征在于,所述获取与K个程序相关联的原子操作接口,调用所述原子操作接口对所述K个程序中的每个程序执行原子操作,得到参与竞争分布式锁的所述每个程序的原子操作结果,包括:
获取开票业务下的K个程序相关联的原子操作接口,确定与所述K个程序相关联的约定参数的约定值;所述K个程序包括第一程序和第二程序;
调用与所述原子操作接口相关联的原子替换函数,分别对所述第一程序和所述第二程序执行原子操作;
将所述第一程序的锁状态参数的初始值替换为所述约定值,且将所述第一程序的约定参数的所述约定值替换为所述初始值,将所述第一程序在执行完所述原子操作后所返回的具有所述初始值的约定参数作为所述第一程序的第一操作结果;
根据具有所述约定值的所述第一程序的锁状态参数,更新所述第二程序的锁状态参数的初始值,得到所述第二程序的锁状态参数的更新值;
将所述第二程序的锁状态参数的更新值替换为所述约定值,且将所述第二程序的约定参数的约定值替换为所述更新值,将所述第二程序在执行完所述原子操作后所返回的具有所述更新值的约定参数作为所述第二程序的第二操作结果;
将所述第一操作结果和第二操作结果作为参与竞争分布式锁的所述每个程序的原子操作结果。


5.根据权利要求1所述的方法,其特征在于,所述每个程序的原子操作结果包含第一参数值对应的原子操作结果和第二参数值对应的原子操作结果;所述第一参数值和所述第二参数值均为所述每个程序在执行完原子操作后的约定参数的值;所述第一参数值用于指示对应程序成功获取到所述分布式锁;所述第二参数值用于指示对应程序暂未获取到所述分布式锁。


6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
检测所述K个程序中暂未获取到所述分布式锁的程序,将所述暂未获取到所述分布式锁的程序确定为待处理程序;
对所述待处理程序执行所述原子操作,直至所述待处理程序的原子操作结果为所述第一参数值时,通过所述分布式锁对所述待处理程序进行加锁处理,以使加锁处理后的待处理程序访问所述共享资源。


7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取与开票业务相关联的第一智能合约的第一合约调用地址,基于所述第一合约调用地址调用所述第一智能合约,向所述区块链中的税务节点发送票据申请请求;所述票据申请请求用于指示所述税务节点配置票据代码对应的票据号段;
接收所述税务节点返回的所述票据代码对应的票据号段,将所述票据代码和所述票据号段中的M个票据号码作为所述共享资源;M为正整数。<...

【专利技术属性】
技术研发人员:郑罗海
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1