本发明涉及计算机技术领域,具体涉及一种收银信息同步方法及收银系统。
背景技术:
随着科学技术的不断进步以及计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。而随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。为了方便管理大量的超市商品,超市智能化的实现,超市的管理问题也就提上了日程,随着超市商品的大量增加,其管理难度也变得越来越大,如何优化超市的日常管理也就成为了一个大众化的课题。
为了方便管理以及提高购物体验,现有的大型商场、超市通常采用多个收银台进行收银,而不同收银台之间需要进行数据同步,目前主要采用的数据同步技术为保持心跳方式,其性能低,延迟明显,不能满足应用要求。
技术实现要素:
本发明的目的在于提供一种收银信息同步方法及收银系统,可以降低数据同步延迟。
为实现上述目的,本发明的技术方案提供了一种收银信息同步方法,包括:
步骤s1:服务端对每一个收银台建立对应的第一消息队列;
步骤s2:对于每一个收银台,当接收到用户输入的收银操作信息后根据所述用户输入的收银操作信息更新自身的本地数据库,并将所述用户输入的收银操作信息发送至所述服务端;
步骤s3:所述服务端在接收到收银台发送的收银操作信息后根据收银台发送的收银操作信息更新服务端数据库,并将收银台发送的收银操作信息存储于每一个所述第一消息队列;
步骤s4:对于每一个所述第一消息队列,所述服务端按照预设顺序将其中的收银操作信息发送至对应的收银台;
步骤s5:每一个所述收银台根据所述服务端发送的收银操作信息更新自身的本地数据库。
进一步地,所述第一消息队列为rabbitmq队列。
进一步地,在步骤s2中,每一个收银台采用以下方法将用户输入的收银操作信息发送至所述服务端:
每一个收银台将自身接收到的用户输入的收银操作信息存储于自身建立的第二消息队列;
每一个收银台按照预设顺序将自身建立的第二消息队列中的收银操作信息发送至所述服务端。
进一步地,所述第二消息队列为rabbitmq队列。
为实现上述目的,本发明的技术方案还提供了一种收银系统,包括服务端以及多个收银台;
其中,所述服务端包括建立模块、第一更新模块、第一发送模块以及处理模块;
所述建立模块用于对每一个收银台建立对应的第一消息队列;
所述第一更新模块用于在接收到收银台发送的收银操作信息后根据收银台发送的收银操作信息更新服务端数据库;
所述处理模块用于将收银台发送的收银操作信息存储于每一个所述第一消息队列;
所述第一发送模块用于对于每一个所述第一消息队列,按照预设顺序将其中的收银操作信息发送至对应的收银台;
每一个所述收银台包括第二更新模块、第二发送模块以及第三更新模块;
所述第二更新模块用于当接收到用户输入的收银操作信息后根据所述用户输入的收银操作信息更新收银台自身的本地数据库;
所述第二发送模块用于将所述用户输入的收银操作信息发送至所述服务端;
所述第三更新模块用于根据所述服务端发送的收银操作信息更新收银台自身的本地数据库。
进一步地,所述第一消息队列为rabbitmq队列。
进一步地,所述第二发送模块包括:
处理单元,用于将收银台自身接收到的用户输入的收银操作信息存储于收银台自身建立的第二消息队列;
发送单元,用于按照预设顺序将收银台自身建立的第二消息队列中的收银操作信息发送至所述服务端。
进一步地,所述第二消息队列为rabbitmq队列。
本发明提供的收银信息同步方法,各收银台将用户输入的收银操作信息发送至服务端,服务端通过对每一个收银台建立对应的第一消息队列,并利用该第一消息队列将收银操作信息发送至各收银台,从而实现数据的同步,相比现有技术可以有效降低延迟,提高数据同步的性能,实现多个数据库的快速同步。
附图说明
图1是本发明实施方式提供的一种收银信息同步方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,图1是本发明实施方式提供的一种收银信息同步方法的流程图,该方法包括:
步骤s1:服务端对每一个收银台建立对应的第一消息队列;
例如,该第一消息队列可以为rabbitmq队列;
步骤s2:对于每一个收银台,当接收到用户输入的收银操作信息后根据所述用户输入的收银操作信息更新自身的本地数据库,并将所述用户输入的收银操作信息发送至所述服务端;
例如,上述收银操作信息可以为对收银信息的增加、删除、修改等操作信息;
步骤s3:所述服务端在接收到收银台发送的收银操作信息后根据收银台发送的收银操作信息更新服务端数据库,并将收银台发送的收银操作信息存储于每一个所述第一消息队列;
步骤s4:对于每一个所述第一消息队列,所述服务端按照预设顺序将其中的收银操作信息发送至对应的收银台;
例如,对于每一个第一消息队列,服务端可以按照接收到收银操作信息的时间将第一消息队列中的收银操作信息发送至收银台,即先接收到的收银操作信息先发送,后接收到的收银操作信息后发送;
另外,在发送收银操作信息时,服务端还可以将发送该收银操作信息的收银台的身份信息发送给收银台,从而使收银台可以判断接收到的收银操作信息是否为自身发送的收银操作信息;
其中,对于每一个第一消息队列,若服务端检测当前向收银台发送的收银操作信息发送成功,则将该当前发送成功的收银操作信息从该第一消息队列中移除,若检测发送失败,则将该当前发送失败的收银操作信息移至该第一消息队列的末端,等待重新发送;
步骤s5:每一个所述收银台根据所述服务端发送的收银操作信息更新自身的本地数据库;
具体地,对于每一个收银台,当接收到服务端发送的收银操作信息后,首先判断接收的收银操作信息是否是自身发送的收银操作信息,若是,则忽略该收银操作信息,若否,则根据该收银操作信息对收银台自身的本地数据库进行数据更新;
本发明实施方式提供的收银信息同步方法,各收银台将用户输入的收银操作信息发送至服务端,服务端通过对每一个收银台建立对应的第一消息队列,并利用该第一消息队列将收银操作信息发送至各收银台,从而实现数据的同步,相比现有技术可以有效降低延迟,提高数据同步的性能,实现多个数据库的快速同步。
优选地,在步骤s2中,每一个收银台可以采用消息队列将用户输入的收银操作信息发送至服务端,即每一个收银台采用以下方法将用户输入的收银操作信息发送至所述服务端:
每一个收银台将自身接收到的用户输入的收银操作信息存储于自身建立的第二消息队列,例如,该所述第二消息队列可以为rabbitmq队列;
每一个收银台按照预设顺序将自身建立的第二消息队列中的收银操作信息发送至所述服务端。
每一个收银台利用自身建立的第二消息队列将用户输入的收银操作信息发送至服务端,具体地,对于每一个收银台,当接收到用户输入的的收银操作信息后首先更新自身的本地数据库,并将其存储在第二消息队列中,其中,收银台按照用户输入收银操作信息的时间将第一消息队列中的收银操作信息发送至收银台,即用户先输入的收银操作信息先发送,用户后输入的收银操作信息后发送;
在发送过程中,若收银台检测当前向服务端发送的收银操作信息发送成功,则将该当前发送成功的收银操作信息从该第二消息队列中移除,若检测发送失败,则将该当前发送失败的收银操作信息移至该第二消息队列的末端,等待重新发送。
本发明实施方式提供的收银信息同步方法,通过采用消息队列进行数据同步,能够实现低延迟传输数据库对象,并实现对象持久化,保证同步的可靠性以及数据的一致性,尤其适用于多节点、大量数据的同步。
此外,本发明实施方式还提供了一种收银系统,包括服务端以及多个收银台;
其中,所述服务端包括建立模块、第一更新模块、第一发送模块以及处理模块;
所述建立模块用于对每一个收银台建立对应的第一消息队列;
所述第一更新模块用于在接收到收银台发送的收银操作信息后根据收银台发送的收银操作信息更新服务端数据库;
所述处理模块用于将收银台发送的收银操作信息存储于每一个所述第一消息队列;
所述第一发送模块用于对于每一个所述第一消息队列,按照预设顺序将其中的收银操作信息发送至对应的收银台;
每一个所述收银台包括第二更新模块、第二发送模块以及第三更新模块;
所述第二更新模块用于当接收到用户输入的收银操作信息后根据所述用户输入的收银操作信息更新收银台自身的本地数据库;
所述第二发送模块用于将所述用户输入的收银操作信息发送至所述服务端;
所述第三更新模块用于根据所述服务端发送的收银操作信息更新收银台自身的本地数据库。
例如,在本发明实施方式中,所述第一消息队列可以为rabbitmq队列。
优选地,在本发明实施方式中,所述第二发送模块包括:
处理单元,用于将收银台自身接收到的用户输入的收银操作信息存储于收银台自身建立的第二消息队列;
发送单元,用于按照预设顺序将收银台自身建立的第二消息队列中的收银操作信息发送至所述服务端。
例如,在本发明实施方式中,所述第二消息队列可以为rabbitmq队列。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。