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