本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù),尤其涉及一種數(shù)據(jù)處理方法、裝置及服務(wù)器。
背景技術(shù):
隨著互聯(lián)網(wǎng)和終端設(shè)備的發(fā)展,終端設(shè)備和服務(wù)器之間的數(shù)據(jù)傳輸、處理日益頻繁。當(dāng)服務(wù)器需要對(duì)終端設(shè)備在短時(shí)間內(nèi)發(fā)起的大量數(shù)據(jù)進(jìn)行處理時(shí),由于數(shù)據(jù)處理的高并發(fā)性,使得數(shù)據(jù)處理邏輯產(chǎn)生混亂,數(shù)據(jù)處理的準(zhǔn)確性大幅降低。
以抽獎(jiǎng)活動(dòng)為例,在抽獎(jiǎng)持續(xù)的時(shí)間段,服務(wù)器會(huì)接受到終端設(shè)備發(fā)起的大量參與抽獎(jiǎng)的信息,對(duì)于是否中獎(jiǎng)的判定通常受限于用戶的中獎(jiǎng)次數(shù)以及最終可用于發(fā)獎(jiǎng)的獎(jiǎng)品數(shù),由于數(shù)據(jù)的高并發(fā)處理會(huì)造成用戶已經(jīng)到達(dá)中獎(jiǎng)次數(shù)上限卻依然被判定為中獎(jiǎng),或發(fā)獎(jiǎng)獎(jiǎng)品數(shù)已經(jīng)為零卻依然發(fā)送獎(jiǎng)品的情況出現(xiàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種數(shù)據(jù)處理方法、裝置及服務(wù)器,使得服務(wù)器在高并發(fā)的數(shù)據(jù)處理過程中,保證數(shù)據(jù)處理邏輯的準(zhǔn)確性,提高了數(shù)據(jù)處理效率。
第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)處理方法,包括:
接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令,所述數(shù)據(jù)庫操作指令包括對(duì)數(shù)據(jù)庫進(jìn)行操作的邏輯判斷命令;
將所述數(shù)據(jù)庫操作指令封裝至腳本中;
依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
第二方面,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)處理裝置,其特征在于,包括:
信息接收模塊,用于接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,
操作指令生成模塊,用于根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令,所述數(shù)據(jù)庫操作指令包括對(duì)數(shù)據(jù)庫進(jìn)行操作的邏輯判斷命令;
封裝模塊,用于將所述數(shù)據(jù)庫操作指令封裝至腳本中;
數(shù)據(jù)庫操作模塊,用于依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
第三方面,本發(fā)明實(shí)施例還提供了一種服務(wù)器,包括:處理器、存儲(chǔ)器以及存儲(chǔ)在存儲(chǔ)器上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)以下步驟:
接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令,所述數(shù)據(jù)庫操作指令包括對(duì)數(shù)據(jù)庫進(jìn)行操作的邏輯判斷命令;
將所述數(shù)據(jù)庫操作指令封裝至腳本中;
依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
本發(fā)明實(shí)施例提供的技術(shù)方案,通過接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,根據(jù)數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令,將數(shù)據(jù)庫操作指令封裝至腳本中,再依據(jù)腳本對(duì)數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作,解決了服務(wù)器在處理高并發(fā)數(shù)據(jù)時(shí)邏輯混亂的問題,保證數(shù)據(jù)處理邏輯的準(zhǔn)確性,提高了數(shù)據(jù)處理的準(zhǔn)確性。
附圖說明
通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的流程圖;
圖2是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理方法的流程圖;
圖3是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理方法的流程圖;
圖4是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的交互示意圖;
圖5是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理方法的流程圖;
圖6是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置的結(jié)構(gòu)圖;
圖7是本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實(shí)施例用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
圖1是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的流程圖,本實(shí)施例可適用于高并發(fā)數(shù)據(jù)處理的情況,該方法可以由計(jì)算設(shè)備如服務(wù)器來執(zhí)行,如圖1所示,本實(shí)施例提供的具體方案如下:
S101、接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令。
本實(shí)施例中,終端設(shè)備可以是用戶使用的智能終端,如手機(jī)、平板電腦,也可以是臺(tái)式機(jī)、筆記本電腦等。
本實(shí)施例中,該數(shù)據(jù)處理信息由終端設(shè)備發(fā)送,可實(shí)現(xiàn)終端設(shè)備和服務(wù)器的交互。示例性的,當(dāng)用戶點(diǎn)擊智能終端顯示界面中的登錄按鈕時(shí),智能終端依據(jù)該按鈕被點(diǎn)擊后觸發(fā)的登錄功能邏輯,發(fā)送對(duì)應(yīng)的登錄信息至服務(wù)器以進(jìn)行數(shù)據(jù)交互完成登錄功能。
本實(shí)施例中,數(shù)據(jù)庫操作指令可對(duì)數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行添加、刪除和修改等操作,其中,該數(shù)據(jù)庫操作指令包括對(duì)數(shù)據(jù)庫進(jìn)行操作的邏輯判斷命令。依據(jù)數(shù)據(jù)庫中記錄的數(shù)據(jù)以及該邏輯判斷命令確定是否對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行添加、刪除和修改等操作。示例性的,數(shù)據(jù)庫操作指令為對(duì)數(shù)據(jù)庫表1中,ID為001的商品對(duì)應(yīng)的數(shù)量進(jìn)行減1操作,其中的邏輯判斷命令可以是該001號(hào)商品對(duì)應(yīng)的數(shù)量大于或等于1。
本實(shí)施例中,數(shù)據(jù)庫操作指令可以是一條或多條邏輯判斷命令,邏輯判斷命令可以是編程語言中的分支語句??赏ǘ鄺l邏輯判斷命令來確定最終是否對(duì)數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
S102、將所述數(shù)據(jù)庫操作指令封裝至腳本中。
其中,腳本又稱作宏或批處理文件。本實(shí)施例中,腳本作為一條或多條數(shù)據(jù)庫操作指令的集合,可被服務(wù)器一次性運(yùn)行。
可選的,本實(shí)施例中使用Lua腳本對(duì)數(shù)據(jù)庫操作指令進(jìn)行封裝。Lua腳本本身為一種輕量級(jí)語言,官方版本只包括一個(gè)精簡(jiǎn)的核心和基本庫,Lua體積小、啟動(dòng)速度快,其由ANSI C語言編寫并以源代碼形式開放,編譯后僅僅一百余K,可以方便的嵌入到其它程序中。
S103、依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
本實(shí)施例中,服務(wù)器執(zhí)行包含數(shù)據(jù)庫操作指令的腳本程序,而非直接對(duì)數(shù)據(jù)庫操作指令進(jìn)行運(yùn)行。當(dāng)服務(wù)器執(zhí)行該腳本時(shí),數(shù)據(jù)庫中記錄的數(shù)據(jù)可在腳本執(zhí)行時(shí)依據(jù)執(zhí)行結(jié)果進(jìn)行操作,此時(shí),由于數(shù)據(jù)庫執(zhí)行腳本的原子性,數(shù)據(jù)庫中記錄的數(shù)據(jù)不會(huì)被其它數(shù)據(jù)操作指令更改。
本實(shí)施例提供了一種數(shù)據(jù)處理方法,通過將數(shù)據(jù)操作指令封裝到腳本中,再依據(jù)腳本對(duì)數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作,使得數(shù)據(jù)庫在高并發(fā)處理具備復(fù)雜的事務(wù)操作邏輯的操作程序時(shí),邏輯處理的準(zhǔn)確性得到有效保證,避免了數(shù)據(jù)處理的誤操作,本方案中由于將數(shù)據(jù)操作指令封裝在了腳本中,也避免了在代碼層需要進(jìn)行復(fù)雜設(shè)計(jì)才能處理高并發(fā)數(shù)據(jù)帶來的處理效率低下,程序漏洞較多的問題。
圖2是本發(fā)明實(shí)施例提供的另數(shù)據(jù)處理方法的流程圖,在上述實(shí)施例的基礎(chǔ)上,可選的,所述根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令包括:
根據(jù)所述數(shù)據(jù)處理信息以及預(yù)設(shè)的數(shù)據(jù)處理邏輯生成數(shù)據(jù)庫操作指令。
由此,在高并發(fā)數(shù)據(jù)處理過程中,可根據(jù)預(yù)設(shè)的數(shù)據(jù)處理邏輯針對(duì)不同的事件類型、事務(wù)判斷情況生成數(shù)據(jù)操作指令。
進(jìn)一步,可選的,所述將所述數(shù)據(jù)庫操作指令封裝至腳本中包括:
如果所述數(shù)據(jù)庫操作指令的邏輯正確,則將所述數(shù)據(jù)庫操作指令封裝至腳本中。
由此,在對(duì)數(shù)據(jù)庫指令進(jìn)行封裝時(shí),引入了邏輯判斷過程,避免了邏輯錯(cuò)誤或不符合事件要求的邏輯被服務(wù)器執(zhí)行進(jìn)而對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行修改。
基于上述優(yōu)化,如圖2所示,本實(shí)施例提供的技術(shù)方案具體如下:
S201、接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,根據(jù)所述數(shù)據(jù)處理信息以及預(yù)設(shè)的數(shù)據(jù)處理邏輯生成數(shù)據(jù)庫操作指令。
本實(shí)施例中,該預(yù)設(shè)的數(shù)據(jù)處理邏輯可依據(jù)不同的處理事件進(jìn)行設(shè)定。
示例性的,門戶類網(wǎng)站對(duì)旗下產(chǎn)品進(jìn)行限時(shí)優(yōu)惠搶購時(shí),該搶購商品的數(shù)量有限,且在開放搶購的第一時(shí)間,服務(wù)器會(huì)接收到大量的搶購信息,需要對(duì)搶購觸發(fā)的時(shí)間以及優(yōu)惠產(chǎn)品庫存是否滿足搶購條件進(jìn)行邏輯判斷。此時(shí),依據(jù)數(shù)據(jù)處理信息和該邏輯判斷生成對(duì)應(yīng)的數(shù)據(jù)庫操作指令以在執(zhí)行過程中判定是否需要對(duì)數(shù)據(jù)庫記錄的數(shù)據(jù)進(jìn)行操作以及如何操作。
S202、如果所述數(shù)據(jù)庫操作指令的邏輯正確,則將所述數(shù)據(jù)庫操作指令封裝至腳本中。
本實(shí)施例中,如果判斷出數(shù)據(jù)操作指令邏輯錯(cuò)誤,則放棄該數(shù)據(jù)操作指令的腳本封裝過程。示例性的,在對(duì)數(shù)據(jù)庫操作指令邏輯的正確性進(jìn)行判斷時(shí),可以是常規(guī)的數(shù)據(jù)庫操作邏輯的正確性判定,也包括對(duì)特定事件具體邏輯是否正確的判定,如對(duì)前述搶購時(shí)間是否滿足設(shè)定要求的邏輯判斷是否正確的判定。
S203、依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
需要說明的是,本發(fā)明示例性的將S201-S203組成一個(gè)實(shí)施例執(zhí)行一種數(shù)據(jù)處理方法,但僅僅是本發(fā)明的一種實(shí)例,在本發(fā)明的其它實(shí)施例中,可以將S201和S102、S203組成一個(gè)新的實(shí)施例,或者也可以將S101和S202、S203組成一個(gè)實(shí)施例。
本實(shí)施例提供了一種數(shù)據(jù)處理方法,根據(jù)數(shù)據(jù)處理信息以及預(yù)設(shè)的數(shù)據(jù)處理邏輯生成數(shù)據(jù)庫操作指令,提高了數(shù)據(jù)處理的靈活性,在高并發(fā)的數(shù)據(jù)處理中,將正確邏輯的數(shù)據(jù)庫操作指令進(jìn)行腳本封裝進(jìn)而運(yùn)行處理,提高了數(shù)據(jù)處理效率,避免了數(shù)據(jù)處理異常帶來的系統(tǒng)崩潰問題。
圖3是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理方法的流程圖,在上述實(shí)施例的基礎(chǔ)上,可選的,當(dāng)所述數(shù)據(jù)庫為加載在內(nèi)存中的中間數(shù)據(jù)庫時(shí),在所述接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息之前,還包括:
將原始數(shù)據(jù)加載至所述中間數(shù)據(jù)庫中。
由此,可顯著提高對(duì)數(shù)據(jù)庫進(jìn)行操作的效率。
相應(yīng)的,在所述依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作之后,還包括:
將所述中間數(shù)據(jù)庫中的信息同步至物理數(shù)據(jù)庫中,所述物理數(shù)據(jù)庫包括存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)中的數(shù)據(jù)庫。
通過將中間數(shù)據(jù)庫的信息同步至物理數(shù)據(jù)庫,以使物理數(shù)據(jù)庫中的數(shù)據(jù)最終依據(jù)數(shù)據(jù)庫操作指令進(jìn)行操作,完成數(shù)據(jù)處理。
基于上述優(yōu)化,如圖3所示,本實(shí)施例提供的技術(shù)方案具體如下:
S301、將原始數(shù)據(jù)加載至所述中間數(shù)據(jù)庫中。
本實(shí)施例中,原始數(shù)據(jù)為在執(zhí)行數(shù)據(jù)處理操作前物理數(shù)據(jù)庫記錄的或者錄入的數(shù)據(jù)信息。示例性的,針對(duì)抽獎(jiǎng)事件而言,該原始數(shù)據(jù)可以是用戶的ID,用戶中獎(jiǎng)的次數(shù)以及獎(jiǎng)品的ID和獎(jiǎng)品數(shù)量等。可選的,本實(shí)施例方案中,中間數(shù)據(jù)庫使用Redis數(shù)據(jù)庫實(shí)現(xiàn),運(yùn)行在內(nèi)中,Redis是一個(gè)開源的使用ANSI C語言編寫、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫,并提供多種語言的API,同時(shí),Redis數(shù)據(jù)庫支持主從同步,數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,從服務(wù)器可以是關(guān)聯(lián)其他從服務(wù)器的主服務(wù)器。
S302、接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令。
S303、將所述數(shù)據(jù)庫操作指令封裝至腳本中。
S304、依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
S305、將所述中間數(shù)據(jù)庫中的信息同步至物理數(shù)據(jù)庫中,所述物理數(shù)據(jù)庫包括存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)中的數(shù)據(jù)庫。
本實(shí)施例中,該信息同步的操作可以是同步實(shí)時(shí)的同步,也可以是異步同步,其中,同步操作可以保證物理數(shù)據(jù)庫的實(shí)時(shí)更新,便于供應(yīng)商或管理員進(jìn)行邏輯更改和新一輪的對(duì)數(shù)據(jù)操作指令的相應(yīng),異步操作可以在一項(xiàng)數(shù)據(jù)處理事項(xiàng)完畢后再對(duì)物理數(shù)據(jù)庫進(jìn)行更新,提高了數(shù)據(jù)庫的更新訪問效率,也避免了反復(fù)對(duì)物理數(shù)據(jù)庫進(jìn)行操作帶來的數(shù)據(jù)不準(zhǔn)確的問題。
需要說明的是,本發(fā)明示例性的將S301-S305組成一個(gè)實(shí)施例執(zhí)行一種數(shù)據(jù)處理方法,但僅僅是本發(fā)明的一種實(shí)例,在本發(fā)明的其它實(shí)施例中,可以將S301、S201-S203、S305組成一個(gè)新的實(shí)施例。
本實(shí)施例提供了一種數(shù)據(jù)處理方法,通過將原始數(shù)據(jù)加載在中間數(shù)據(jù)庫中,利用中間數(shù)據(jù)庫的原子性操作,對(duì)封裝到腳本中的數(shù)據(jù)庫操作指令進(jìn)行處理,當(dāng)數(shù)據(jù)處理結(jié)束后在同步至物理數(shù)據(jù)庫,避免了數(shù)據(jù)操作時(shí)邏輯混亂的問題出現(xiàn),提高了數(shù)據(jù)庫操作的效率,進(jìn)一步提高了數(shù)據(jù)操作的準(zhǔn)確性。
在上述技術(shù)方案的基礎(chǔ)上,所述接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令包括:
接收終端設(shè)備發(fā)送的抽獎(jiǎng)信息,根據(jù)所述抽獎(jiǎng)信息以及預(yù)設(shè)的抽獎(jiǎng)邏輯生成數(shù)據(jù)庫操作指令。如圖4所示,圖4是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理方法的交互示意圖,該抽獎(jiǎng)信息可由終端設(shè)備41發(fā)送至服務(wù)器42,服務(wù)器42接收到該抽獎(jiǎng)信息后進(jìn)行數(shù)據(jù)處理,將處理完畢的結(jié)果如是否中獎(jiǎng)等信息反饋會(huì)終端設(shè)備41。其中,所述預(yù)設(shè)的抽獎(jiǎng)邏輯包括:判斷用戶的中獎(jiǎng)次數(shù)是否超出預(yù)設(shè)次數(shù),若否,則將所述用戶的中獎(jiǎng)次數(shù)增加一次,并相應(yīng)的減少獎(jiǎng)品的庫存數(shù)量;將所述獎(jiǎng)品的標(biāo)識(shí)添加到所述用戶的中獎(jiǎng)列表中。需要說明的是,上述抽獎(jiǎng)邏輯為簡(jiǎn)單的邏輯展示,僅為對(duì)本實(shí)施例進(jìn)行說明,通過本方案可執(zhí)行多嵌套的更加復(fù)雜的邏輯處理而保證數(shù)據(jù)操作的穩(wěn)定性。
圖5是本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)處理方法的流程圖,在上述實(shí)施例的基礎(chǔ)上,可選的,所述將所述數(shù)據(jù)庫操作指令封裝至腳本中包括:
將在預(yù)設(shè)時(shí)間中生成的或預(yù)設(shè)數(shù)量的數(shù)據(jù)庫操作指令封裝至腳本中。
由此,在一個(gè)腳本中可實(shí)現(xiàn)多級(jí)的數(shù)據(jù)庫操作指令,在腳本執(zhí)行過程中可一次性執(zhí)行,得到最終數(shù)據(jù)庫操作的結(jié)果。
基于上述優(yōu)化,如圖5所示,本實(shí)施例提供的技術(shù)方案具體如下:
S401、接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令。
S402、將在預(yù)設(shè)時(shí)間中生成的或預(yù)設(shè)數(shù)量的數(shù)據(jù)庫操作指令封裝至腳本中。
本實(shí)施例中,該預(yù)設(shè)時(shí)間可以是0.05秒、0.1秒或0.5秒等,該預(yù)設(shè)數(shù)量可以是兩組、三組或五組數(shù)據(jù)庫操作指令等,具體時(shí)間長(zhǎng)短和數(shù)據(jù)庫操作指令的預(yù)設(shè)數(shù)量可依據(jù)不同的處理事務(wù)和并發(fā)數(shù)據(jù)處理量的大小靈活設(shè)定。
S403、依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
需要說明的是,本發(fā)明示例性的將S401-S403組成一個(gè)實(shí)施例執(zhí)行一種數(shù)據(jù)處理方法,但僅僅是本發(fā)明的一種實(shí)例,在本發(fā)明的其它實(shí)施例中,可以將S201、S402、S403組成一個(gè)新的實(shí)施例。
本實(shí)施例提供了一種數(shù)據(jù)處理方法,通過將在預(yù)設(shè)時(shí)間中生成的或預(yù)設(shè)數(shù)量的數(shù)據(jù)庫操作指令封裝至腳本中,使得服務(wù)器運(yùn)行腳本時(shí),數(shù)據(jù)庫在進(jìn)行數(shù)據(jù)操作的過程中可在一個(gè)腳本中一次性執(zhí)行多組數(shù)據(jù)庫操作指令,提高了數(shù)據(jù)處理速度,提高了腳本封裝效率。
圖6是本發(fā)明實(shí)施例提供的一種數(shù)據(jù)處理裝置的結(jié)構(gòu)圖,所述裝置用于執(zhí)行上述實(shí)施例提供的數(shù)據(jù)處理方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。如圖6所示,所述裝置包括信息接收模塊1、操作指令生成模塊2、封裝模塊3和數(shù)據(jù)庫操作模塊4。
其中,信息接收模塊1用于接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,
操作指令生成模塊2用于根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令,所述數(shù)據(jù)庫操作指令包括對(duì)數(shù)據(jù)庫進(jìn)行操作的邏輯判斷命令;
封裝模塊3用于將所述數(shù)據(jù)庫操作指令封裝至腳本中;
數(shù)據(jù)庫操作模塊4用于依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
本實(shí)施例提供了一種數(shù)據(jù)處理裝置,通過將數(shù)據(jù)操作指令封裝到腳本中,再依據(jù)腳本對(duì)數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作,使得數(shù)據(jù)庫在高并發(fā)處理具備復(fù)雜的事務(wù)操作邏輯的操作程序時(shí),邏輯處理的準(zhǔn)確性得到有效保證,避免了數(shù)據(jù)處理的誤操作。
在上述技術(shù)方案的基礎(chǔ)上,所述操作指令生成模塊2具體用于:
根據(jù)所述數(shù)據(jù)處理信息以及預(yù)設(shè)的數(shù)據(jù)處理邏輯生成數(shù)據(jù)庫操作指令。
在上述技術(shù)方案的基礎(chǔ)上,所述封裝模塊3具體用于:
如果所述數(shù)據(jù)庫操作指令的邏輯正確,則將所述數(shù)據(jù)庫操作指令封裝至腳本中。
在上述技術(shù)方案的基礎(chǔ)上,所述裝置還包括:
加載模塊,用于當(dāng)所述數(shù)據(jù)庫為加載在內(nèi)存中的中間數(shù)據(jù)庫時(shí),在所述接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息之前,將原始數(shù)據(jù)加載至所述中間數(shù)據(jù)庫中;
同步模塊,用于在所述依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作之后,將所述中間數(shù)據(jù)庫中的信息同步至物理數(shù)據(jù)庫中,所述物理數(shù)據(jù)庫包括存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)中的數(shù)據(jù)庫。
在上述技術(shù)方案的基礎(chǔ)上,所述操作指令生成模塊2具體用于:
接收終端設(shè)備發(fā)送的抽獎(jiǎng)信息,根據(jù)所述抽獎(jiǎng)信息以及預(yù)設(shè)的抽獎(jiǎng)邏輯生成數(shù)據(jù)庫操作指令。
在上述技術(shù)方案的基礎(chǔ)上,所述預(yù)設(shè)的抽獎(jiǎng)邏輯包括:
判斷用戶的中獎(jiǎng)次數(shù)是否超出預(yù)設(shè)次數(shù),若否,則將所述用戶的中獎(jiǎng)次數(shù)增加一次,并相應(yīng)的減少獎(jiǎng)品的庫存數(shù)量;
將所述獎(jiǎng)品的標(biāo)識(shí)添加到所述用戶的中獎(jiǎng)列表中。
在上述技術(shù)方案的基礎(chǔ)上,所述封裝模塊3具體用于:
將在預(yù)設(shè)時(shí)間中生成的或預(yù)設(shè)數(shù)量的數(shù)據(jù)庫操作指令封裝至腳本中。
圖7是本發(fā)明實(shí)施例提供的一種服務(wù)器的結(jié)構(gòu)示意圖。圖7示出了適于用來實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性服務(wù)器12的框圖。圖7顯示的服務(wù)器12僅僅是一個(gè)示例,不應(yīng)對(duì)本發(fā)明實(shí)施例的功能和使用范圍帶來任何限制。
如圖7所示,服務(wù)器12以通用計(jì)算設(shè)備的形式表現(xiàn)。服務(wù)器12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,存儲(chǔ)器或系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。
總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來說,這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC)總線,增強(qiáng)型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及外圍組件互連(PCI)總線。
服務(wù)器12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。
系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(RAM)30和/或高速緩存存儲(chǔ)器32。服務(wù)器12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖6未顯示,通常稱為“硬盤驅(qū)動(dòng)器”)。盡管圖7中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(例如CD-ROM,DVD-ROM或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本發(fā)明各實(shí)施例的功能。
具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在例如存儲(chǔ)器28中,這樣的程序模塊42包括但不限于操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本發(fā)明所描述的實(shí)施例中的功能和/或方法。
服務(wù)器12也可以與一個(gè)或多個(gè)外部設(shè)備14(例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該服務(wù)器12交互的設(shè)備通信,和/或與使得該服務(wù)器12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過輸入/輸出(I/O)接口22進(jìn)行。并且,設(shè)備/終端/服務(wù)器12還可以通過網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適配器20通過總線18與設(shè)備/終端/服務(wù)器12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
處理單元16通過運(yùn)行存儲(chǔ)在系統(tǒng)存儲(chǔ)器28中的程序,用于實(shí)現(xiàn):
接收終端設(shè)備發(fā)送的數(shù)據(jù)處理信息,根據(jù)所述數(shù)據(jù)處理信息生成數(shù)據(jù)庫操作指令,所述數(shù)據(jù)庫操作指令包括對(duì)數(shù)據(jù)庫進(jìn)行操作的邏輯判斷命令;
將所述數(shù)據(jù)庫操作指令封裝至腳本中;
依據(jù)所述腳本對(duì)所述數(shù)據(jù)庫中記錄的數(shù)據(jù)進(jìn)行操作。
注意,上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理。本領(lǐng)域技術(shù)人員會(huì)理解,本發(fā)明不限于這里所述的特定實(shí)施例,對(duì)本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會(huì)脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實(shí)施例對(duì)本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實(shí)施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實(shí)施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。