一种数据处理方法、装置及服务器与流程

文档序号:12063912阅读:203来源:国知局
一种数据处理方法、装置及服务器与流程

本发明实施例涉及计算机技术,尤其涉及一种数据处理方法、装置及服务器。



背景技术:

随着互联网和终端设备的发展,终端设备和服务器之间的数据传输、处理日益频繁。当服务器需要对终端设备在短时间内发起的大量数据进行处理时,由于数据处理的高并发性,使得数据处理逻辑产生混乱,数据处理的准确性大幅降低。

以抽奖活动为例,在抽奖持续的时间段,服务器会接受到终端设备发起的大量参与抽奖的信息,对于是否中奖的判定通常受限于用户的中奖次数以及最终可用于发奖的奖品数,由于数据的高并发处理会造成用户已经到达中奖次数上限却依然被判定为中奖,或发奖奖品数已经为零却依然发送奖品的情况出现。



技术实现要素:

本发明提供了一种数据处理方法、装置及服务器,使得服务器在高并发的数据处理过程中,保证数据处理逻辑的准确性,提高了数据处理效率。

第一方面,本发明实施例提供了一种数据处理方法,包括:

接收终端设备发送的数据处理信息,根据所述数据处理信息生成数据库操作指令,所述数据库操作指令包括对数据库进行操作的逻辑判断命令;

将所述数据库操作指令封装至脚本中;

依据所述脚本对所述数据库中记录的数据进行操作。

第二方面,本发明实施例还提供了一种数据处理装置,其特征在于,包括:

信息接收模块,用于接收终端设备发送的数据处理信息,

操作指令生成模块,用于根据所述数据处理信息生成数据库操作指令,所述数据库操作指令包括对数据库进行操作的逻辑判断命令;

封装模块,用于将所述数据库操作指令封装至脚本中;

数据库操作模块,用于依据所述脚本对所述数据库中记录的数据进行操作。

第三方面,本发明实施例还提供了一种服务器,包括:处理器、存储器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

接收终端设备发送的数据处理信息,根据所述数据处理信息生成数据库操作指令,所述数据库操作指令包括对数据库进行操作的逻辑判断命令;

将所述数据库操作指令封装至脚本中;

依据所述脚本对所述数据库中记录的数据进行操作。

本发明实施例提供的技术方案,通过接收终端设备发送的数据处理信息,根据数据处理信息生成数据库操作指令,将数据库操作指令封装至脚本中,再依据脚本对数据库中记录的数据进行操作,解决了服务器在处理高并发数据时逻辑混乱的问题,保证数据处理逻辑的准确性,提高了数据处理的准确性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是本发明实施例提供的一种数据处理方法的流程图;

图2是本发明实施例提供的另一种数据处理方法的流程图;

图3是本发明实施例提供的另一种数据处理方法的流程图;

图4是本发明实施例提供的一种数据处理方法的交互示意图;

图5是本发明实施例提供的另一种数据处理方法的流程图;

图6是本发明实施例提供的一种数据处理装置的结构图;

图7是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

图1是本发明实施例提供的一种数据处理方法的流程图,本实施例可适用于高并发数据处理的情况,该方法可以由计算设备如服务器来执行,如图1所示,本实施例提供的具体方案如下:

S101、接收终端设备发送的数据处理信息,根据所述数据处理信息生成数据库操作指令。

本实施例中,终端设备可以是用户使用的智能终端,如手机、平板电脑,也可以是台式机、笔记本电脑等。

本实施例中,该数据处理信息由终端设备发送,可实现终端设备和服务器的交互。示例性的,当用户点击智能终端显示界面中的登录按钮时,智能终端依据该按钮被点击后触发的登录功能逻辑,发送对应的登录信息至服务器以进行数据交互完成登录功能。

本实施例中,数据库操作指令可对数据库中记录的数据进行添加、删除和修改等操作,其中,该数据库操作指令包括对数据库进行操作的逻辑判断命令。依据数据库中记录的数据以及该逻辑判断命令确定是否对数据库中的数据进行添加、删除和修改等操作。示例性的,数据库操作指令为对数据库表1中,ID为001的商品对应的数量进行减1操作,其中的逻辑判断命令可以是该001号商品对应的数量大于或等于1。

本实施例中,数据库操作指令可以是一条或多条逻辑判断命令,逻辑判断命令可以是编程语言中的分支语句。可通多条逻辑判断命令来确定最终是否对数据库中记录的数据进行操作。

S102、将所述数据库操作指令封装至脚本中。

其中,脚本又称作宏或批处理文件。本实施例中,脚本作为一条或多条数据库操作指令的集合,可被服务器一次性运行。

可选的,本实施例中使用Lua脚本对数据库操作指令进行封装。Lua脚本本身为一种轻量级语言,官方版本只包括一个精简的核心和基本库,Lua体积小、启动速度快,其由ANSI C语言编写并以源代码形式开放,编译后仅仅一百余K,可以方便的嵌入到其它程序中。

S103、依据所述脚本对所述数据库中记录的数据进行操作。

本实施例中,服务器执行包含数据库操作指令的脚本程序,而非直接对数据库操作指令进行运行。当服务器执行该脚本时,数据库中记录的数据可在脚本执行时依据执行结果进行操作,此时,由于数据库执行脚本的原子性,数据库中记录的数据不会被其它数据操作指令更改。

本实施例提供了一种数据处理方法,通过将数据操作指令封装到脚本中,再依据脚本对数据库中记录的数据进行操作,使得数据库在高并发处理具备复杂的事务操作逻辑的操作程序时,逻辑处理的准确性得到有效保证,避免了数据处理的误操作,本方案中由于将数据操作指令封装在了脚本中,也避免了在代码层需要进行复杂设计才能处理高并发数据带来的处理效率低下,程序漏洞较多的问题。

图2是本发明实施例提供的另数据处理方法的流程图,在上述实施例的基础上,可选的,所述根据所述数据处理信息生成数据库操作指令包括:

根据所述数据处理信息以及预设的数据处理逻辑生成数据库操作指令。

由此,在高并发数据处理过程中,可根据预设的数据处理逻辑针对不同的事件类型、事务判断情况生成数据操作指令。

进一步,可选的,所述将所述数据库操作指令封装至脚本中包括:

如果所述数据库操作指令的逻辑正确,则将所述数据库操作指令封装至脚本中。

由此,在对数据库指令进行封装时,引入了逻辑判断过程,避免了逻辑错误或不符合事件要求的逻辑被服务器执行进而对数据库数据进行修改。

基于上述优化,如图2所示,本实施例提供的技术方案具体如下:

S201、接收终端设备发送的数据处理信息,根据所述数据处理信息以及预设的数据处理逻辑生成数据库操作指令。

本实施例中,该预设的数据处理逻辑可依据不同的处理事件进行设定。

示例性的,门户类网站对旗下产品进行限时优惠抢购时,该抢购商品的数量有限,且在开放抢购的第一时间,服务器会接收到大量的抢购信息,需要对抢购触发的时间以及优惠产品库存是否满足抢购条件进行逻辑判断。此时,依据数据处理信息和该逻辑判断生成对应的数据库操作指令以在执行过程中判定是否需要对数据库记录的数据进行操作以及如何操作。

S202、如果所述数据库操作指令的逻辑正确,则将所述数据库操作指令封装至脚本中。

本实施例中,如果判断出数据操作指令逻辑错误,则放弃该数据操作指令的脚本封装过程。示例性的,在对数据库操作指令逻辑的正确性进行判断时,可以是常规的数据库操作逻辑的正确性判定,也包括对特定事件具体逻辑是否正确的判定,如对前述抢购时间是否满足设定要求的逻辑判断是否正确的判定。

S203、依据所述脚本对所述数据库中记录的数据进行操作。

需要说明的是,本发明示例性的将S201-S203组成一个实施例执行一种数据处理方法,但仅仅是本发明的一种实例,在本发明的其它实施例中,可以将S201和S102、S203组成一个新的实施例,或者也可以将S101和S202、S203组成一个实施例。

本实施例提供了一种数据处理方法,根据数据处理信息以及预设的数据处理逻辑生成数据库操作指令,提高了数据处理的灵活性,在高并发的数据处理中,将正确逻辑的数据库操作指令进行脚本封装进而运行处理,提高了数据处理效率,避免了数据处理异常带来的系统崩溃问题。

图3是本发明实施例提供的另一种数据处理方法的流程图,在上述实施例的基础上,可选的,当所述数据库为加载在内存中的中间数据库时,在所述接收终端设备发送的数据处理信息之前,还包括:

将原始数据加载至所述中间数据库中。

由此,可显著提高对数据库进行操作的效率。

相应的,在所述依据所述脚本对所述数据库中记录的数据进行操作之后,还包括:

将所述中间数据库中的信息同步至物理数据库中,所述物理数据库包括存储在非易失性存储介质中的数据库。

通过将中间数据库的信息同步至物理数据库,以使物理数据库中的数据最终依据数据库操作指令进行操作,完成数据处理。

基于上述优化,如图3所示,本实施例提供的技术方案具体如下:

S301、将原始数据加载至所述中间数据库中。

本实施例中,原始数据为在执行数据处理操作前物理数据库记录的或者录入的数据信息。示例性的,针对抽奖事件而言,该原始数据可以是用户的ID,用户中奖的次数以及奖品的ID和奖品数量等。可选的,本实施例方案中,中间数据库使用Redis数据库实现,运行在内中,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,同时,Redis数据库支持主从同步,数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。

S302、接收终端设备发送的数据处理信息,根据所述数据处理信息生成数据库操作指令。

S303、将所述数据库操作指令封装至脚本中。

S304、依据所述脚本对所述数据库中记录的数据进行操作。

S305、将所述中间数据库中的信息同步至物理数据库中,所述物理数据库包括存储在非易失性存储介质中的数据库。

本实施例中,该信息同步的操作可以是同步实时的同步,也可以是异步同步,其中,同步操作可以保证物理数据库的实时更新,便于供应商或管理员进行逻辑更改和新一轮的对数据操作指令的相应,异步操作可以在一项数据处理事项完毕后再对物理数据库进行更新,提高了数据库的更新访问效率,也避免了反复对物理数据库进行操作带来的数据不准确的问题。

需要说明的是,本发明示例性的将S301-S305组成一个实施例执行一种数据处理方法,但仅仅是本发明的一种实例,在本发明的其它实施例中,可以将S301、S201-S203、S305组成一个新的实施例。

本实施例提供了一种数据处理方法,通过将原始数据加载在中间数据库中,利用中间数据库的原子性操作,对封装到脚本中的数据库操作指令进行处理,当数据处理结束后在同步至物理数据库,避免了数据操作时逻辑混乱的问题出现,提高了数据库操作的效率,进一步提高了数据操作的准确性。

在上述技术方案的基础上,所述接收终端设备发送的数据处理信息,根据所述数据处理信息生成数据库操作指令包括:

接收终端设备发送的抽奖信息,根据所述抽奖信息以及预设的抽奖逻辑生成数据库操作指令。如图4所示,图4是本发明实施例提供的一种数据处理方法的交互示意图,该抽奖信息可由终端设备41发送至服务器42,服务器42接收到该抽奖信息后进行数据处理,将处理完毕的结果如是否中奖等信息反馈会终端设备41。其中,所述预设的抽奖逻辑包括:判断用户的中奖次数是否超出预设次数,若否,则将所述用户的中奖次数增加一次,并相应的减少奖品的库存数量;将所述奖品的标识添加到所述用户的中奖列表中。需要说明的是,上述抽奖逻辑为简单的逻辑展示,仅为对本实施例进行说明,通过本方案可执行多嵌套的更加复杂的逻辑处理而保证数据操作的稳定性。

图5是本发明实施例提供的另一种数据处理方法的流程图,在上述实施例的基础上,可选的,所述将所述数据库操作指令封装至脚本中包括:

将在预设时间中生成的或预设数量的数据库操作指令封装至脚本中。

由此,在一个脚本中可实现多级的数据库操作指令,在脚本执行过程中可一次性执行,得到最终数据库操作的结果。

基于上述优化,如图5所示,本实施例提供的技术方案具体如下:

S401、接收终端设备发送的数据处理信息,根据所述数据处理信息生成数据库操作指令。

S402、将在预设时间中生成的或预设数量的数据库操作指令封装至脚本中。

本实施例中,该预设时间可以是0.05秒、0.1秒或0.5秒等,该预设数量可以是两组、三组或五组数据库操作指令等,具体时间长短和数据库操作指令的预设数量可依据不同的处理事务和并发数据处理量的大小灵活设定。

S403、依据所述脚本对所述数据库中记录的数据进行操作。

需要说明的是,本发明示例性的将S401-S403组成一个实施例执行一种数据处理方法,但仅仅是本发明的一种实例,在本发明的其它实施例中,可以将S201、S402、S403组成一个新的实施例。

本实施例提供了一种数据处理方法,通过将在预设时间中生成的或预设数量的数据库操作指令封装至脚本中,使得服务器运行脚本时,数据库在进行数据操作的过程中可在一个脚本中一次性执行多组数据库操作指令,提高了数据处理速度,提高了脚本封装效率。

图6是本发明实施例提供的一种数据处理装置的结构图,所述装置用于执行上述实施例提供的数据处理方法,具备执行方法相应的功能模块和有益效果。如图6所示,所述装置包括信息接收模块1、操作指令生成模块2、封装模块3和数据库操作模块4。

其中,信息接收模块1用于接收终端设备发送的数据处理信息,

操作指令生成模块2用于根据所述数据处理信息生成数据库操作指令,所述数据库操作指令包括对数据库进行操作的逻辑判断命令;

封装模块3用于将所述数据库操作指令封装至脚本中;

数据库操作模块4用于依据所述脚本对所述数据库中记录的数据进行操作。

本实施例提供了一种数据处理装置,通过将数据操作指令封装到脚本中,再依据脚本对数据库中记录的数据进行操作,使得数据库在高并发处理具备复杂的事务操作逻辑的操作程序时,逻辑处理的准确性得到有效保证,避免了数据处理的误操作。

在上述技术方案的基础上,所述操作指令生成模块2具体用于:

根据所述数据处理信息以及预设的数据处理逻辑生成数据库操作指令。

在上述技术方案的基础上,所述封装模块3具体用于:

如果所述数据库操作指令的逻辑正确,则将所述数据库操作指令封装至脚本中。

在上述技术方案的基础上,所述装置还包括:

加载模块,用于当所述数据库为加载在内存中的中间数据库时,在所述接收终端设备发送的数据处理信息之前,将原始数据加载至所述中间数据库中;

同步模块,用于在所述依据所述脚本对所述数据库中记录的数据进行操作之后,将所述中间数据库中的信息同步至物理数据库中,所述物理数据库包括存储在非易失性存储介质中的数据库。

在上述技术方案的基础上,所述操作指令生成模块2具体用于:

接收终端设备发送的抽奖信息,根据所述抽奖信息以及预设的抽奖逻辑生成数据库操作指令。

在上述技术方案的基础上,所述预设的抽奖逻辑包括:

判断用户的中奖次数是否超出预设次数,若否,则将所述用户的中奖次数增加一次,并相应的减少奖品的库存数量;

将所述奖品的标识添加到所述用户的中奖列表中。

在上述技术方案的基础上,所述封装模块3具体用于:

将在预设时间中生成的或预设数量的数据库操作指令封装至脚本中。

图7是本发明实施例提供的一种服务器的结构示意图。图7示出了适于用来实现本发明实施方式的示例性服务器12的框图。图7显示的服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图7所示,服务器12以通用计算设备的形式表现。服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,存储器或系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。

服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该服务器12交互的设备通信,和/或与使得该服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备/终端/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备/终端/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,用于实现:

接收终端设备发送的数据处理信息,根据所述数据处理信息生成数据库操作指令,所述数据库操作指令包括对数据库进行操作的逻辑判断命令;

将所述数据库操作指令封装至脚本中;

依据所述脚本对所述数据库中记录的数据进行操作。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1