两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

訂單處理方法和裝置與流程

文檔序號(hào):11277136閱讀:314來(lái)源:國(guó)知局
訂單處理方法和裝置與流程

本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及訂單處理方法和裝置。



背景技術(shù):

隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,越來(lái)越多的用戶開(kāi)始選擇網(wǎng)絡(luò)購(gòu)物,這使得電子商城等的訂單數(shù)量出現(xiàn)了飛速的增長(zhǎng)。因此,如何高效的處理訂單成為人們關(guān)注的重要問(wèn)題。

現(xiàn)有技術(shù)通常采用對(duì)訂單處理系統(tǒng)進(jìn)行設(shè)定的方式進(jìn)行處理訂單,使其可以每隔一定時(shí)間段對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的訂單進(jìn)行加載和處理。該方法要求系統(tǒng)首先將待處理的訂單加載到內(nèi)存中,而后對(duì)上述內(nèi)存中訂單逐一處理。但是,隨著訂單數(shù)量的不斷增加,采用上述方法每次都需要加載大量的訂單到內(nèi)存,這需要占用大量的內(nèi)存空間。并且,上述方法是采用的是先加載后處理的串行化方式處理訂單,效率低。



技術(shù)實(shí)現(xiàn)要素:

本申請(qǐng)的目的在于提出一種改進(jìn)的訂單處理方法和裝置,來(lái)解決以上背景技術(shù)部分提到的技術(shù)問(wèn)題。

第一方面,本申請(qǐng)?zhí)峁┝艘环N訂單處理方法,所述方法包括:響應(yīng)于接收到客戶端發(fā)送的當(dāng)前待處理訂單的發(fā)送請(qǐng)求,生產(chǎn)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量;若所述數(shù)量小于預(yù)設(shè)的第一閾值,則所述生產(chǎn)者線程接收當(dāng)前待處理訂單并將所述當(dāng)前待處理訂單緩存到所述容器中的所述已有待處理訂單集合中;消費(fèi)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量;若所述數(shù)量大于零,所述消費(fèi)者線程從所述容器中的已有待處理訂單集合中獲取所述已有待處理訂單。

在一些實(shí)施例中,若所述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量大于或等于所述第一閾值時(shí),所述生產(chǎn)者線程不向所述容器緩存所述當(dāng)前待處理訂單。

在一些實(shí)施例中,所述若所述數(shù)量小于預(yù)設(shè)的第一閾值,則所述生產(chǎn)者線程接收當(dāng)前待處理訂單并將所述當(dāng)前待處理訂單緩存到所述容器中的所述已有待處理訂單集合中,包括:若所述數(shù)量小于預(yù)設(shè)的第一閾值,判斷所述當(dāng)前待處理訂單的數(shù)量是否大于或等于預(yù)設(shè)的第二閾值;若是,所述生產(chǎn)者線程接收所述第二閾值的數(shù)量的當(dāng)前待處理訂單并將所述當(dāng)前待處理訂單緩存到所述容器中的所述已有待處理訂單集合中;若否,所述生產(chǎn)者線程接收所有的當(dāng)前待處理訂單并將所述當(dāng)前待處理訂單緩存到所述容器中的所述已有待處理訂單集合中。

在一些實(shí)施例中,所述若所述數(shù)量大于零,所述消費(fèi)者線程從所述容器中的已有待處理訂單集合中獲取所述已有待處理訂單,包括:判斷所述數(shù)量是否大于或等于預(yù)設(shè)的第三閾值;若是,則所述消費(fèi)者線程從所述容器的已有待處理訂單集合中獲取所述第三閾值的數(shù)量的已有待處理訂單;若否,則所述消費(fèi)者線程獲取所述容器的已有待處理訂單集合中所有已有待處理訂單。

在一些實(shí)施例中,所述第一閾值大于所述第二閾值,且所述第一閾值大于所述第三閾值。

在一些實(shí)施例中,所述消費(fèi)者線程從所述容器中的已有待處理訂單集合中獲取所述已有待處理訂單還包括:所述消費(fèi)者線程判斷所述已有待處理訂單集合中是否存在處于緩存過(guò)程中的已有待處理訂單,若存在,則所述消費(fèi)者線程不從所述已有待處理訂單集合中的獲取已有待處理訂單。

第二方面,本申請(qǐng)?zhí)峁┝艘环N訂單處理裝置,所述裝置包括:第一數(shù)量確定模塊,配置用于響應(yīng)于接收到客戶端發(fā)送的當(dāng)前待處理訂單的發(fā)送請(qǐng)求,生產(chǎn)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量;緩存模塊,配置用于若所述數(shù)量小于預(yù)設(shè)的第一閾值,則所述生產(chǎn)者線程接收當(dāng)前待處理訂單并將所述當(dāng)前待 處理訂單緩存到所述容器中的所述已有待處理訂單集合中;第二數(shù)量確定模塊,配置用于消費(fèi)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量;獲取模塊,配置用于若所述數(shù)量大于零,所述消費(fèi)者線程從所述容器中的已有待處理訂單集合中獲取所述已有待處理訂單。

在一些實(shí)施例中,若所述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量大于或等于所述第一閾值時(shí),所述生產(chǎn)者線程不向所述容器緩存所述當(dāng)前待處理訂單。

在一些實(shí)施例中,所述緩存模塊配置具體用于:若所述數(shù)量小于預(yù)設(shè)的第一閾值,判斷所述當(dāng)前待處理訂單的數(shù)量是否大于或等于預(yù)設(shè)的第二閾值;若是,所述生產(chǎn)者線程接收所述第二閾值的數(shù)量的當(dāng)前待處理訂單并將所述當(dāng)前待處理訂單緩存到所述容器中的所述已有待處理訂單集合中;若否,所述生產(chǎn)者線程接收所有的當(dāng)前待處理訂單并將所述當(dāng)前待處理訂單緩存到所述容器中的所述已有待處理訂單集合中。

在一些實(shí)施例中,所述獲取模塊配置具體用于:判斷所述數(shù)量是否大于或等于預(yù)設(shè)的第三閾值;若是,則所述消費(fèi)者線程從所述容器的已有待處理訂單集合中獲取所述第三閾值的數(shù)量的已有待處理訂單;若否,則所述消費(fèi)者線程獲取所述容器的已有待處理訂單集合中所有已有待處理訂單。

在一些實(shí)施例中,所述第一閾值大于所述第二閾值,且所述第一閾值大于所述第三閾值。

在一些實(shí)施例中,所述獲取模塊配置進(jìn)一步用于:所述消費(fèi)者線程判斷所述已有待處理訂單集合中是否存在處于緩存過(guò)程中的已有待處理訂單,若存在,則所述消費(fèi)者線程不從所述已有待處理訂單集合中獲取已有待處理訂單。

本申請(qǐng)?zhí)峁┑挠唵翁幚矸椒ê脱b置,在接收到客戶端發(fā)送的當(dāng)前待處理訂單的發(fā)送請(qǐng)求時(shí),判斷容器已有待處理訂單的數(shù)量,在生產(chǎn)者線程確定所述數(shù)量小于預(yù)設(shè)的第一閾值的情況下,緩存接收到的當(dāng)前待處理訂單到容器中的已有待處理訂單集合中,并且同時(shí)判斷消費(fèi) 者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量是否大于零,在所述數(shù)量大于零的情況下,消費(fèi)者線程從容器中獲取已有待處理訂單,從而通過(guò)將生產(chǎn)者緩存當(dāng)前待處理訂單和消費(fèi)者處理獲取的已有待處理訂單并行執(zhí)行,提高了訂單處理的效率,同時(shí)也通過(guò)設(shè)置第一閾值降低了訂單的內(nèi)存占用量。

附圖說(shuō)明

通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:

圖1是本申請(qǐng)可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;

圖2是根據(jù)本申請(qǐng)的訂單處理方法的一個(gè)實(shí)施例的流程圖;

圖3是根據(jù)本申請(qǐng)的訂單處理方法的又一個(gè)實(shí)施例的流程圖;

圖4是根據(jù)本申請(qǐng)的訂單處理裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;

圖5是適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說(shuō)明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說(shuō)明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。

需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本申請(qǐng)。

圖1示出了可以應(yīng)用本申請(qǐng)的訂單處理方法或訂單處理裝置的實(shí)施例的示例性系統(tǒng)架構(gòu)100。

如圖1所示,系統(tǒng)架構(gòu)100可以包括客戶端101,網(wǎng)絡(luò)102、104,服務(wù)器103和服務(wù)器105。網(wǎng)絡(luò)102、104用以在客戶端101、服務(wù)器103和服務(wù)器105之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)102、104可以包括各種連接類型,例如有線、無(wú)線通信鏈路或者光纖電纜等等。

在本實(shí)施例中,客戶端101作為一種電子設(shè)備,其可以為運(yùn)行有多個(gè)應(yīng)用以向用戶提供線上服務(wù)的服務(wù)器,該服務(wù)器上可以設(shè)置數(shù)據(jù)庫(kù),用于為各個(gè)終端設(shè)備(未示出)上運(yùn)行的應(yīng)用所產(chǎn)生的訂單提供訂單數(shù)據(jù)存儲(chǔ)服務(wù)。服務(wù)器105可以對(duì)終端設(shè)備(未示出)產(chǎn)生的訂單數(shù)據(jù)進(jìn)行數(shù)據(jù)分析等處理。客戶端101可以接收用戶在終端設(shè)備(未示出)上安裝有各種通訊客戶端應(yīng)用產(chǎn)生的訂單數(shù)據(jù),例如網(wǎng)頁(yè)瀏覽器應(yīng)用、購(gòu)物類應(yīng)用、搜索類應(yīng)用、即時(shí)通信工具、郵箱客戶端、社交平臺(tái)軟件等。

服務(wù)器103可以是提供各種服務(wù)的服務(wù)器,例如對(duì)客戶端101的訂單數(shù)據(jù)提供支持的后臺(tái)服務(wù)器。后臺(tái)服務(wù)器可以對(duì)接收到的訂單等進(jìn)行加載緩存處理,并將處理結(jié)果發(fā)送給服務(wù)器105。

需要說(shuō)明的是,本申請(qǐng)實(shí)施例所提供的訂單處理方法一般由服務(wù)器103執(zhí)行,相應(yīng)地,訂單處理裝置一般設(shè)置于服務(wù)器103中。

應(yīng)該理解,圖1中的客戶端、網(wǎng)絡(luò)和服務(wù)器的數(shù)目?jī)H僅是示意性的。根據(jù)實(shí)現(xiàn)需要,可以具有任意數(shù)目的客戶端、網(wǎng)絡(luò)和服務(wù)器。

繼續(xù)參考圖2,其示出了根據(jù)本申請(qǐng)的訂單處理方法的一個(gè)實(shí)施例的流程200。所述的訂單處理方法,包括以下步驟:

步驟201,響應(yīng)于接收到客戶端發(fā)送的當(dāng)前待處理訂單的發(fā)送請(qǐng)求,生產(chǎn)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量。

在本實(shí)施例中,訂單處理方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的服務(wù)器103)可以通過(guò)有線連接方式或者無(wú)線連接方式接收客戶端存儲(chǔ)的用戶利用終端設(shè)備進(jìn)行網(wǎng)購(gòu)等產(chǎn)生的當(dāng)前待處理訂單。當(dāng)上述電子設(shè)備接收到客戶端發(fā)送的當(dāng)前待處理訂單的發(fā)送請(qǐng)求時(shí),預(yù)先創(chuàng)建的生產(chǎn)者線程可以確定預(yù)先創(chuàng)建的容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量。需要指出的是,上述生產(chǎn)者線程和上述消費(fèi)者線程可以并列的開(kāi)啟運(yùn)行。這里,上述無(wú)線連接方式可以包括但不限于3g/4g連接、wifi連接、藍(lán)牙連接、wimax連接、zigbee連接、uwb(ultrawideband)連接、以及其他現(xiàn)在已知或?qū)?lái)開(kāi)發(fā)的無(wú)線連接方式。

步驟202,若已有待處理訂單的數(shù)量小于預(yù)設(shè)的第一閾值,則生產(chǎn)者線程接收當(dāng)前待處理訂單并將當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。

在本實(shí)施例中,基于步驟201中得到的容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量,上述電子設(shè)備(例如圖1所示的服務(wù)器103)可以判斷該數(shù)量是否小于預(yù)設(shè)的第一閾值,如果該數(shù)量小于上述第一閾值,上述生產(chǎn)者線程可以接收當(dāng)前待處理訂單并將上述接收的當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。該方法通過(guò)給上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量設(shè)置一第一閾值,使得不管客戶端發(fā)送的當(dāng)前待處理訂單的數(shù)量為多少,上述電子設(shè)備的內(nèi)存的占用量都不超過(guò)預(yù)設(shè)閾值,可以有效地控制上述電子設(shè)備的內(nèi)存的占用量。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,若上述電子設(shè)備確定上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量大于或等于第一閾值時(shí),則生產(chǎn)者線程不向上述容器緩存當(dāng)前待處理訂單。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,當(dāng)上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量小于預(yù)設(shè)的第一閾值時(shí),則說(shuō)明上述容器還可以緩存上述當(dāng)前待處理訂單。此時(shí)可以繼續(xù)判斷上述當(dāng)前待處理訂單的數(shù)量是否大于或等于預(yù)設(shè)的第二閾值;若上述當(dāng)前待處理訂單的數(shù)量大于或等于預(yù)設(shè)的第二閾值,則生產(chǎn)者線程可以接收第二閾值的數(shù)量的當(dāng)前待處理訂單并將接收到的第二閾值數(shù)量的當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中;若上述當(dāng)前待處理訂單的數(shù)量小于預(yù)設(shè)的第二閾值,則生產(chǎn)者線程可以接收所有的當(dāng)前待處理訂單并將接收到的所有當(dāng)前待處理訂單緩存到上述容器中的已有待處理訂單集合中。

步驟203,消費(fèi)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量。

在本實(shí)施例中,上述消費(fèi)者線程可以確定上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量。這里,上述電子設(shè)備預(yù)先創(chuàng)建的消費(fèi)者線程主要用于確定容器中存儲(chǔ)的已有待處理訂單集合 是否為空;如果該容器中存儲(chǔ)的已有待處理訂單集合為空,則消費(fèi)者線程不能從中獲取已有待處理訂單;如果該容器中存儲(chǔ)的已有待處理訂單集合不為空,則消費(fèi)者線程可以從中獲取已有待處理訂單。

步驟204,若已有待處理訂單的數(shù)量大于零,消費(fèi)者線程從容器中的已有待處理訂單集合中獲取已有待處理訂單。

在本實(shí)施例中,基于步驟203確定的上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量大于零,即該容器不為空,上述消費(fèi)者線程從該容器中的已有待處理訂單集合中獲取已有待處理訂單。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,這里的容器相當(dāng)于一個(gè)公共緩沖區(qū),可以用于生產(chǎn)者線程緩存當(dāng)前待處理訂單到已有待處理訂單集合中,緩存后的已有待處理訂單可以被消費(fèi)者線程獲取。并且上述生產(chǎn)者線程在緩存當(dāng)前待處理訂單的過(guò)程中,消費(fèi)者線程可以處理已經(jīng)獲取的已有待處理訂單,這種生產(chǎn)者線程緩存訂單和消費(fèi)者線程處理訂單并列執(zhí)行的方法可以有效地提高訂單處理的效率。

本申請(qǐng)的上述實(shí)施例提供的方法,通過(guò)給容器存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量設(shè)置閾值,降低了訂單的內(nèi)存空間的占用量,另外還通過(guò)將生產(chǎn)者線程緩存當(dāng)前待處理訂單和消費(fèi)者線程處理已獲取的已有待處理訂單并行執(zhí)行的方式,提高了訂單處理的效率。

進(jìn)一步參考圖3,其示出了訂單處理方法的又一個(gè)實(shí)施例的流程300。該訂單處理方法的流程300,包括以下步驟:

步驟301,響應(yīng)于接收到客戶端發(fā)送的當(dāng)前待處理訂單的發(fā)送請(qǐng)求,生產(chǎn)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量。

在本實(shí)施例中,訂單處理方法運(yùn)行于其上的電子設(shè)備(例如圖1所示的服務(wù)器103)可以通過(guò)有線連接方式或者無(wú)線連接方式接收客戶端存儲(chǔ)的用戶利用終端設(shè)備進(jìn)行網(wǎng)購(gòu)等產(chǎn)生的當(dāng)前待處理訂單。當(dāng)上述電子設(shè)備接收到客戶端發(fā)送的當(dāng)前待處理訂單的發(fā)送請(qǐng)求時(shí),預(yù)先創(chuàng)建的生產(chǎn)者線程可以確定預(yù)先創(chuàng)建的容器中存儲(chǔ)的已有待處理訂 單集合中的已有待處理訂單的數(shù)量。

步驟302,判斷已有待處理訂單的數(shù)量是否小于預(yù)設(shè)的第一閾值。

在本實(shí)施例中,上述電子設(shè)備可以預(yù)先給容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量設(shè)置一第一閾值,該第一閾值可以根據(jù)內(nèi)存的大小進(jìn)行設(shè)置?;诓襟E301確定的容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量,判斷該數(shù)量是否小于上述第一閾值,如果該數(shù)量小于上述第一閾值,則轉(zhuǎn)到步驟303,如果該數(shù)量大于或等于上述第一閾值,則轉(zhuǎn)到步驟304。

步驟303,判斷當(dāng)前待處理訂單的數(shù)量是否大于或等于預(yù)設(shè)的第二閾值。

在本實(shí)施例中,基于步驟302確定的上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量小于上述第一閾值,繼續(xù)判斷接收到的上述客戶端發(fā)送的當(dāng)前待處理訂單的數(shù)量是否大于或等于預(yù)設(shè)的第二閾值。如果當(dāng)前待處理訂單的數(shù)量大于或等于預(yù)設(shè)的第二閾值,則轉(zhuǎn)到步驟305,將第二閾值數(shù)量的當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。如果當(dāng)前待處理訂單的數(shù)量小于預(yù)設(shè)的第二閾值,則轉(zhuǎn)到步驟306,將所有當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。該步驟是在上述容器未滿的情況下,生產(chǎn)者可以將客戶端發(fā)送的當(dāng)前待處理訂單分批次的緩存到容器中,有助于控制容器中的已有待處理訂單集合中已有待處理訂單的數(shù)量,可以有效地降低內(nèi)存的占用量。

步驟304,生產(chǎn)者線程不向容器緩存當(dāng)前待處理訂單。

在本實(shí)施例中,基于步驟302確定的上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量大于或等于上述第一閾值,則上述生產(chǎn)者線程不向容器中緩存當(dāng)前待處理訂單。這里,在容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量大于或等于上述第一閾值的情況下,生產(chǎn)者線程不再向上述容器中緩存當(dāng)前待處理訂單,可以有效地控制容器中存儲(chǔ)的已有待處理訂單的數(shù)量,即可以有效地控制內(nèi)存空間的占用量。

步驟305,生產(chǎn)者線程接收第二閾值的數(shù)量的當(dāng)前待處理訂單并 將接收到的當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。

在本實(shí)施例中,基于步驟303中確定的當(dāng)前待處理訂單的數(shù)量大于或等于預(yù)設(shè)的第二閾值,上述電子設(shè)備中的生產(chǎn)者線程接收第二閾值的數(shù)量的當(dāng)前待處理訂單并將接收到的第二閾值數(shù)量的當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述第一閾值大于上述第二閾值,即容器中已有待處理訂單集合中的數(shù)量大于生產(chǎn)者線程每次緩存的當(dāng)前待處理訂單的數(shù)量。該方式在生產(chǎn)者線程緩存當(dāng)前待處理訂單和消費(fèi)者線程獲取已有待處理訂單并列執(zhí)行的情況下,可以將客戶端每次發(fā)送的當(dāng)前待處理訂單分為若干次緩存到容器中,可以有效地降低待處理訂單對(duì)內(nèi)存的占用量。

步驟306,生產(chǎn)者線程接收所有的當(dāng)前待處理訂單并將接收到的當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。

在本實(shí)施例中,基于步驟303中確定的當(dāng)前待處理訂單的數(shù)量小于預(yù)設(shè)的第二閾值,上述電子設(shè)備中的生產(chǎn)者線程接收所有的當(dāng)前待處理訂單并將接收到的當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。例如,當(dāng)客戶端發(fā)送的當(dāng)前待處理訂單的數(shù)量為30,而上述第二閾值為20時(shí),上述生產(chǎn)者線程第一次可以將第二閾值數(shù)量20個(gè)當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中,此時(shí)剩余的當(dāng)前待處理訂單的數(shù)量為10,可以判斷出已經(jīng)小于第二閾值,因此上述生產(chǎn)者線程第二次可以將剩余的所有的10個(gè)當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。

步驟307,消費(fèi)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量。

在本實(shí)施例中,上述消費(fèi)者線程可以確定上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量。這里,上述電子設(shè)備預(yù)先創(chuàng)建的消費(fèi)者線程還可以用于確定容器中存儲(chǔ)的已有待處理訂單集合是否為空;如果該容器中存儲(chǔ)的已有待處理訂單集合為空,則消費(fèi)者線程不能從中獲取已有待處理訂單;如果該容器中存儲(chǔ)的已有待處理訂單集合不為空,則消費(fèi)者線程可以從中獲取已有待處理訂單。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述消費(fèi)者線程判斷已有待處理訂單集合中是否存在處于緩存過(guò)程中的已有待處理訂單,若存在,則消費(fèi)者線程不從已有待處理訂單集合中獲取任何已有待處理訂單。

步驟308,判斷已有待處理訂單的數(shù)量是否大于或等于預(yù)設(shè)的第三閾值。

在本實(shí)施例中,如果上述容器中存儲(chǔ)的已有待處理訂單集合如果不為空,則上述電子設(shè)備繼續(xù)判斷上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量是否大于或等于預(yù)設(shè)的第三閾值,如果上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量大于或等于預(yù)設(shè)的第三閾值,則轉(zhuǎn)到步驟309,否則轉(zhuǎn)到步驟310。

步驟309,消費(fèi)者線程從容器的已有待處理訂單集合中獲取第三閾值的數(shù)量的已有待處理訂單。

在本實(shí)施例中,基于步驟308確定的上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量大于或等于預(yù)設(shè)的第三閾值,上述消費(fèi)者線程從容器的已有待處理訂單集合中獲取第三閾值數(shù)量的已有待處理訂單。

在本實(shí)施的一些可選的實(shí)現(xiàn)方式中,上述第一閾值可以大于上述第三閾值,即上述容器中已有待處理訂單的數(shù)量的最大值可以大于消費(fèi)者線程每次獲取的已有待處理訂單的數(shù)量的最大值。

步驟310,消費(fèi)者線程獲取容器的已有待處理訂單集合中所有已有待處理訂單。

在本實(shí)施例中,當(dāng)上述生產(chǎn)者線程不向容器緩存當(dāng)前待處理訂單時(shí),基于步驟308確定的上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量小于預(yù)設(shè)的第三閾值,消費(fèi)者線程獲取容器的已有待處理訂單集合中所有已有待處理訂單。例如,上述容器中的已有待處理訂單為30(第一閾值可以為不小于30的任意整數(shù)),而上述第三閾值為20時(shí),上述消費(fèi)者線程第一次可以從容器中獲取第三閾值數(shù)量的已有待處理訂單,此時(shí)容器中剩余的已有待處理訂單的數(shù)量為10,可以判斷出小于第三閾值20,因此上述消費(fèi)者線程第二次可以獲 取容器中剩余的所有的10個(gè)已有待處理訂單。

本申請(qǐng)的上述實(shí)施例提供的方法,生產(chǎn)者線程分批次的緩存當(dāng)前待處理訂單和消費(fèi)者線程處理獲取的已有待處理訂單并列執(zhí)行,可以提高訂單處理的效率,同時(shí)給容器緩存的已有待處理訂單的數(shù)量設(shè)置第一閾值,還可以進(jìn)一步的降低內(nèi)存空間的占用量。

進(jìn)一步參考圖4,作為對(duì)上述各圖所示方法的實(shí)現(xiàn),本申請(qǐng)?zhí)峁┝艘环N訂單處理裝置的一個(gè)實(shí)施例,該裝置實(shí)施例與圖2所示的方法實(shí)施例相對(duì)應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。

如圖4所示,本實(shí)施例所述的訂單處理裝置400包括:第一數(shù)量確定模塊401、緩存模塊402、第二數(shù)量確定模塊403和獲取模塊404。其中,第一數(shù)量確定模塊401配置用于響應(yīng)于接收到客戶端發(fā)送的當(dāng)前待處理訂單的發(fā)送請(qǐng)求,生產(chǎn)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量;緩存模塊402配置用于若上述數(shù)量小于預(yù)設(shè)的第一閾值,則生產(chǎn)者線程接收當(dāng)前待處理訂單并將上述當(dāng)前待處理訂單緩存到上述容器中的已有待處理訂單集合中;第二數(shù)量確定模塊403配置用于消費(fèi)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量;獲取模塊404配置用于若上述數(shù)量大于零,消費(fèi)者線程從上述容器中的已有待處理訂單集合中獲取已有待處理訂單。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,若上述容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量大于或等于上述第一閾值時(shí),生產(chǎn)者線程不向容器緩存當(dāng)前待處理訂單。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,緩存模塊402配置具體用于:若上述數(shù)量小于預(yù)設(shè)的第一閾值,判斷當(dāng)前待處理訂單的數(shù)量是否大于或等于預(yù)設(shè)的第二閾值;若是,上述生產(chǎn)者線程接收第二閾值的數(shù)量的當(dāng)前待處理訂單并將上述第二閾值的數(shù)量的當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中;若否,上述生產(chǎn)者線程接收所有的當(dāng)前待處理訂單并將所有的當(dāng)前待處理訂單緩存到容器中的已有待處理訂單集合中。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,獲取模塊404配置具體用 于:判斷上述數(shù)量是否大于或等于預(yù)設(shè)的第三閾值;若是,則消費(fèi)者線程從容器的已有待處理訂單集合中獲取上述第三閾值的數(shù)量的已有待處理訂單;若否,則消費(fèi)者線程獲取容器的已有待處理訂單集合中所有已有待處理訂單。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,上述第一閾值大于上述第二閾值,且上述第一閾值大于上述第三閾值。

在本實(shí)施例的一些可選的實(shí)現(xiàn)方式中,獲取模塊404配置進(jìn)一步用于:上述消費(fèi)者線程判斷已有待處理訂單集合中是否存在處于緩存過(guò)程中的已有待處理訂單,若存在,則消費(fèi)者線程不從所述已有待處理訂單集合中獲取已有待處理訂單。

本領(lǐng)域技術(shù)人員可以理解,上述訂單處理裝置400還包括一些其他公知結(jié)構(gòu),例如處理器、存儲(chǔ)器等,為了不必要地模糊本公開(kāi)的實(shí)施例,這些公知的結(jié)構(gòu)在圖4中未示出。

下面參考圖5,其示出了適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)系統(tǒng)500的結(jié)構(gòu)示意圖。

如圖5所示,計(jì)算機(jī)系統(tǒng)500包括中央處理單元(cpu)501,其可以根據(jù)存儲(chǔ)在只讀存儲(chǔ)器(rom)502中的程序或者從存儲(chǔ)部分508加載到隨機(jī)訪問(wèn)存儲(chǔ)器(ram)503中的程序而執(zhí)行各種適當(dāng)?shù)膭?dòng)作和處理。在ram503中,還存儲(chǔ)有系統(tǒng)500操作所需的各種程序和數(shù)據(jù)。cpu501、rom502以及ram503通過(guò)總線504彼此相連。輸入/輸出(i/o)接口505也連接至總線504。

以下部件連接至i/o接口505:包括鍵盤、鼠標(biāo)等的輸入部分506;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等的輸出部分507;包括硬盤等的存儲(chǔ)部分508;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分509。通信部分509經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動(dòng)器510也根據(jù)需要連接至i/o接口505??刹鹦督橘|(zhì)511,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲(chǔ)器等等,根據(jù)需要安裝在驅(qū)動(dòng)器510上,以便于從其上讀出的計(jì)算機(jī)程序根據(jù)需要被安裝入存儲(chǔ)部分508。

特別地,根據(jù)本公開(kāi)的實(shí)施例,上文參考流程圖描述的過(guò)程可以 被實(shí)現(xiàn)為計(jì)算機(jī)軟件程序。例如,本公開(kāi)的實(shí)施例包括一種計(jì)算機(jī)程序產(chǎn)品,其包括有形地包含在機(jī)器可讀介質(zhì)上的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實(shí)施例中,該計(jì)算機(jī)程序可以通過(guò)通信部分509從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)511被安裝。

附圖中的流程圖和框圖,圖示了按照本申請(qǐng)各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。

描述于本申請(qǐng)實(shí)施例中所涉及到的模塊可以通過(guò)軟件的方式實(shí)現(xiàn),也可以通過(guò)硬件的方式來(lái)實(shí)現(xiàn)。所描述的模塊也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括第一數(shù)量確定模塊、緩存模塊、第二數(shù)量確定模塊和獲取模塊。其中,這些模塊的名稱在某種情況下并不構(gòu)成對(duì)該模塊本身的限定,例如,第一數(shù)量確定模塊還可以被描述為“響應(yīng)于接收到客戶端發(fā)送的當(dāng)前待處理訂單,生產(chǎn)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量的模塊”。

作為另一方面,本申請(qǐng)還提供了一種非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì),該非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是上述實(shí)施例中所述裝置中所包含的非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì);也可以是單獨(dú)存在,未裝配入終端中的非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。上述非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有一個(gè)或者多個(gè)程序,當(dāng)所述一個(gè)或者多個(gè)程序被一個(gè)設(shè)備執(zhí)行時(shí),使得所述設(shè)備:響應(yīng)于接收到客戶端發(fā)送的當(dāng)前待處理訂單的發(fā)送請(qǐng)求,生產(chǎn) 者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量;若所述數(shù)量小于預(yù)設(shè)的第一閾值,則所述生產(chǎn)者線程接收當(dāng)前待處理訂單并將所述當(dāng)前待處理訂單緩存到所述容器中的所述已有待處理訂單集合中;消費(fèi)者線程確定容器中存儲(chǔ)的已有待處理訂單集合中的已有待處理訂單的數(shù)量;若所述數(shù)量大于零,所述消費(fèi)者線程從所述容器中的已有待處理訂單集合中獲取所述已有待處理訂單。

以上描述僅為本申請(qǐng)的較佳實(shí)施例以及對(duì)所運(yùn)用技術(shù)原理的說(shuō)明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請(qǐng)中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時(shí)也應(yīng)涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請(qǐng)中公開(kāi)的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
益阳市| 霸州市| 沁阳市| 太原市| 扎兰屯市| 游戏| 勃利县| 佛山市| 澄迈县| 德惠市| 托克逊县| 苗栗县| 桐柏县| 陈巴尔虎旗| 乌鲁木齐市| 南宫市| 本溪市| 牙克石市| 满洲里市| 昆明市| 淮阳县| 洛宁县| 无为县| 平江县| 渝北区| 南木林县| 桃园市| 长垣县| 隆回县| 资溪县| 宿松县| 绥棱县| 潞城市| 兰坪| 科技| 泸西县| 东兰县| 柘城县| 土默特左旗| 三穗县| 玉山县|