實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的方法、服務(wù)器及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體涉及一種實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的方法、服務(wù)器及系統(tǒng)。
【背景技術(shù)】
[0002]隨著電子商務(wù)的蓬勃發(fā)展,越來(lái)越多的商業(yè)活動(dòng)利用計(jì)算機(jī)技術(shù),可以在線舉辦。如熱門商品的在線拍賣會(huì),針對(duì)很多個(gè)熱門商品,成千上萬(wàn)個(gè)用戶高并發(fā)(并發(fā)是指一個(gè)時(shí)間段內(nèi),系統(tǒng)同時(shí)處理多個(gè)相同的服務(wù)請(qǐng)求)的競(jìng)拍行為,在用戶競(jìng)拍商品前需要將在出價(jià)頁(yè)面中展示競(jìng)拍數(shù)據(jù)以指導(dǎo)用戶出價(jià),因此需要實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)。
[0003]現(xiàn)有的獲取競(jìng)拍數(shù)據(jù)的方法主要是先將獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求發(fā)送給代理服務(wù)器,由代理服務(wù)器通過(guò)超文本預(yù)處理器(PHP)從數(shù)據(jù)庫(kù)中請(qǐng)求數(shù)據(jù),由于獲取數(shù)據(jù)的業(yè)務(wù)邏輯需要進(jìn)入到PHP框架,也即需要對(duì)PHP進(jìn)行解析,導(dǎo)致性能下降,而且PHP框架本身并不能滿足實(shí)時(shí)獲取數(shù)據(jù)的要求。
【發(fā)明內(nèi)容】
[0004]鑒于上述問(wèn)題,提出了本發(fā)明以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的方法、實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器和及相應(yīng)的實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的系統(tǒng)。
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供了一種實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的方法,方法應(yīng)用于從存儲(chǔ)有競(jìng)拍數(shù)據(jù)的Redis服務(wù)器中實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù),方法包括:
[0006]以短輪詢方式向Redis服務(wù)器發(fā)送獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求;
[0007]根據(jù)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求運(yùn)行內(nèi)嵌在代理服務(wù)器中的預(yù)配置腳本,以從Redis服務(wù)器獲取競(jìng)拍數(shù)據(jù);
[0008]接收Redis服務(wù)器響應(yīng)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求返回的競(jìng)拍數(shù)據(jù)。
[0009]根據(jù)本發(fā)明的另一方面,提供了一種實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器,服務(wù)器用于從存儲(chǔ)有競(jìng)拍數(shù)據(jù)的Redis服務(wù)器中實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù),服務(wù)器包括:
[0010]請(qǐng)求發(fā)送模塊,適于以短輪詢方式向Redis服務(wù)器發(fā)送獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求,以供代理服務(wù)器運(yùn)行內(nèi)嵌的預(yù)配置腳本,從Redis服務(wù)器獲取競(jìng)拍數(shù)據(jù);
[0011]接收模塊,適于接收Redis服務(wù)器響應(yīng)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求返回的競(jìng)拍數(shù)據(jù)。
[0012]根據(jù)本發(fā)明的另一方面,提供了一種實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的系統(tǒng),包括上述實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器、Redis服務(wù)器、代理服務(wù)器和超文本預(yù)處理器,其中,實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器跳過(guò)超文本預(yù)處理器通過(guò)代理服務(wù)器從Redis服務(wù)器中獲取競(jìng)拍數(shù)據(jù);
[0013]代理服務(wù)器,適于根據(jù)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求運(yùn)行內(nèi)嵌在代理服務(wù)器中的預(yù)配置腳本,以從Redis服務(wù)器獲取競(jìng)拍數(shù)據(jù)。
[0014]根據(jù)本發(fā)明提供的方案,以短輪詢方式向Redis服務(wù)器發(fā)送獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求,根據(jù)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求運(yùn)行內(nèi)嵌在代理服務(wù)器中的預(yù)配置腳本,以從Redis服務(wù)器獲取競(jìng)拍數(shù)據(jù),接收Redis服務(wù)器響應(yīng)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求返回的競(jìng)拍數(shù)據(jù),避免了獲取數(shù)據(jù)的業(yè)務(wù)邏輯進(jìn)入PHP的業(yè)務(wù)框架所導(dǎo)致的性能下降問(wèn)題,提升了實(shí)時(shí)獲取數(shù)據(jù)的性會(huì)K。
[0015]上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
【附圖說(shuō)明】
[0016]通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0017]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的方法的流程圖;
[0018]圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的方法的流程圖;
[0019]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器的結(jié)構(gòu)框圖;
[0020]圖4示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器的結(jié)構(gòu)框圖;
[0021]圖5示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0022]下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0023]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的方法的流程圖。該方法應(yīng)用于從存儲(chǔ)有競(jìng)拍數(shù)據(jù)的Redis服務(wù)器中實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)。如圖1所示,該方法包括以下步驟:
[0024]步驟S100,以短輪詢方式向Redis服務(wù)器發(fā)送獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求。
[0025]在本步驟中,實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器通過(guò)短輪詢的方式向Redis服務(wù)器發(fā)送獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求,該請(qǐng)求中包含具體要獲取的競(jìng)拍數(shù)據(jù)的信息,例如,出價(jià)人數(shù)、出價(jià)時(shí)間、競(jìng)拍剩余時(shí)間和出價(jià)價(jià)格,上述競(jìng)拍數(shù)據(jù)可以指導(dǎo)用戶進(jìn)行出價(jià)。其中,短輪詢指Redis服務(wù)器接收到實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器發(fā)送的請(qǐng)求后,直接響應(yīng)該請(qǐng)求;實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器收到Redis服務(wù)器響應(yīng)后,隔一段時(shí)間再發(fā)送同樣的請(qǐng)求Redis服務(wù)器查詢是否有競(jìng)拍數(shù)據(jù)。
[0026]步驟S110,根據(jù)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求運(yùn)行內(nèi)嵌在代理服務(wù)器中的預(yù)配置腳本,以從Redis服務(wù)器獲取競(jìng)拍數(shù)據(jù)。
[0027]可選地,本實(shí)施例的預(yù)配置腳本具體為L(zhǎng)ua腳本。Lua是用標(biāo)準(zhǔn)C語(yǔ)言編寫的,代碼簡(jiǎn)潔優(yōu)美,幾乎在所有操作系統(tǒng)和平臺(tái)上都可以編譯運(yùn)行,它的優(yōu)點(diǎn)是小巧和靈活,而且又是動(dòng)態(tài)語(yǔ)言且是解釋執(zhí)行的,所以適合用在嵌入式環(huán)境里;由于Lua的解釋器是預(yù)編譯性質(zhì)的,所以明顯比其他的腳本語(yǔ)言快許多,這也是本實(shí)施例選擇Lua作為優(yōu)選腳本語(yǔ)言的原因之一。
[0028]在監(jiān)控到實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器發(fā)送的獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求后,運(yùn)行內(nèi)嵌在代理服務(wù)器中的Lua腳本,利用該腳本從Redis服務(wù)器中讀取競(jìng)拍數(shù)據(jù)。上述代理服務(wù)器在內(nèi)部直接支持PHP (超文本預(yù)處理器)對(duì)外進(jìn)行服務(wù),從而跳過(guò)PHP直接從Redis服務(wù)器讀取數(shù)據(jù),避免了獲取數(shù)據(jù)的業(yè)務(wù)邏輯進(jìn)入PHP的業(yè)務(wù)框架,導(dǎo)致性能下降,提升了實(shí)時(shí)獲取數(shù)據(jù)的性能。
[0029]可選地,代理服務(wù)器可以是Nginx服務(wù)器,Nginx采用C進(jìn)行編寫,具有穩(wěn)定性、豐富的功能集和低系統(tǒng)資源、占有內(nèi)存少,并發(fā)能力強(qiáng)等優(yōu)點(diǎn)。
[0030]步驟S120,接收Redis服務(wù)器響應(yīng)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求返回的競(jìng)拍數(shù)據(jù)。
[0031]具體地,Redis服務(wù)器在接收到實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器發(fā)送的請(qǐng)求后,對(duì)該請(qǐng)求進(jìn)行解析,并根據(jù)解析后得到的信息將包含出價(jià)人數(shù)、出價(jià)時(shí)間、競(jìng)拍剩余時(shí)間和出價(jià)價(jià)格的競(jìng)拍數(shù)據(jù)返回給實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器,實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器上述競(jìng)拍數(shù)據(jù)。
[0032]根據(jù)本發(fā)明上述實(shí)施例提供的方法,以短輪詢方式向Redis服務(wù)器發(fā)送獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求,根據(jù)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求運(yùn)行內(nèi)嵌在代理服務(wù)器中的Lua腳本,以從Redis服務(wù)器獲取競(jìng)拍數(shù)據(jù),接收Redis服務(wù)器響應(yīng)獲取競(jìng)拍數(shù)據(jù)的請(qǐng)求返回的競(jìng)拍數(shù)據(jù),避免了獲取數(shù)據(jù)的業(yè)務(wù)邏輯進(jìn)入PHP的業(yè)務(wù)框架所導(dǎo)致的性能下降問(wèn)題,提升了實(shí)時(shí)獲取數(shù)據(jù)的性能。
[0033]圖2示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的方法的流程圖。如圖2所示,該方法包括以下步驟:
[0034]步驟S200,預(yù)先設(shè)定競(jìng)拍時(shí)間。
[0035]預(yù)先為每個(gè)競(jìng)拍商品設(shè)定競(jìng)拍時(shí)間,例如30分鐘,時(shí)間到達(dá)后競(jìng)拍結(jié)束。
[0036]步驟S210,將競(jìng)拍剩余時(shí)間與預(yù)設(shè)時(shí)間段進(jìn)行比較,若競(jìng)拍剩余時(shí)間大于預(yù)設(shè)時(shí)間段,則執(zhí)行步驟S220,若競(jìng)拍剩余時(shí)間小于或等于預(yù)設(shè)時(shí)間段,則執(zhí)行步驟S230。
[0037]在本實(shí)施例中,將預(yù)設(shè)時(shí)間段設(shè)為I分鐘,將競(jìng)拍剩余時(shí)間與預(yù)設(shè)時(shí)間段I分鐘進(jìn)行比較,可以確定實(shí)時(shí)獲取競(jìng)拍數(shù)據(jù)的服務(wù)器間隔多長(zhǎng)時(shí)間發(fā)起一次短輪詢。若競(jìng)拍剩余時(shí)間大于I分鐘,說(shuō)明離競(jìng)拍