freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

petshop的系統(tǒng)架構(gòu)設(shè)計(jì)(編輯修改稿)

2024-07-26 18:28 本頁面
 

【文章內(nèi)容簡介】 using (TransactionScope ts = new TransactionScope(, tsTimeout)) { // Receive the orders from the queue for (int j = 0。 j batchSize。 j++) { try { //only receive more queued orders if there is enough time if ((elapsedTime + queueTimeout + transactionTimeout) ) { ((queueTimeout))。 } else { j = batchSize。 // exit loop } //update elapsed time elapsedTime = new TimeSpan().TotalSeconds 。 } catch (TimeoutException) { //exit loop because no more messages are waiting j = batchSize。 } } //process the queued orders for (int k = 0。 k 。 k++) { ((OrderInfo)queueOrders[k])。 processedItems++。 totalOrdersProcessed++。 } //batch plete or MSMQ receive timed out ()。 } ((Thread Id + + ) batch finished, + processedItems + items, in + () + seconds.)。 } } 首先,()來獲取消息隊(duì)列中的訂單數(shù)據(jù),并將其放入到一個(gè)ArrayList對象中。 ,并不是直接執(zhí)行插入訂單的操作,而是調(diào)用了IOrderStrategy接口的Insert()方法:public void Insert(OrderInfo order){ // Call credit card procesor ProcessCreditCard(order)。 // Insert the order (a)synchrounously based on configuration (order)。} 在這里,運(yùn)用了一個(gè)策略模式,類圖如下所示: ,仍然利用配置文件來動(dòng)態(tài)創(chuàng)建IOrderStategy對象:private static readonly orderInsertStrategy = LoadInsertStrategy()。private static LoadInsertStrategy(){ // Look up which strategy to use from config file string path = [”O(jiān)rderStrategyAssembly”]。 string className = [”O(jiān)rderStrategyClass”]。 // Using the evidence given in the config file load the appropriate assembly and class return ()(path).CreateInstance(className)。} 由于OrderProcessor是一個(gè)單獨(dú)的應(yīng)用程序,因此它使用的配置文件與PetShop不同,在該文件中,對IOrderStategy的配置為: add key=”O(jiān)rderStrategyAssembly” value=”” / add key=”O(jiān)rderStrategyClass” value=”” / 因此,以異步方式插入訂單的流程如下圖所示: Microsoft Messaging Queue(MSMQ)技術(shù)除用于異步處理以外,它主要還是一種分布式處理技術(shù)。分布式處理中,一個(gè)重要的技術(shù)要素就是有關(guān)消息的處理,已經(jīng)提供了Message類,可以用于承載消息的傳遞,前提上消息的發(fā)送方與接收方在數(shù)據(jù)定義上應(yīng)有統(tǒng)一的接口規(guī)范。 MSMQ在分布式處理的運(yùn)用,在我參與的項(xiàng)目中已經(jīng)有了實(shí)現(xiàn)。在為一個(gè)汽車制造商開發(fā)一個(gè)大型系統(tǒng)時(shí),需要將數(shù)據(jù)傳遞到管理中心,并且該數(shù)據(jù)將被Oracle的EBS(EBusiness System)使用。由于分銷商管理系統(tǒng)(DMS)采用的是C/S結(jié)構(gòu),數(shù)據(jù)庫為SQL Server,而汽車制造商管理中心的EBS數(shù)據(jù)庫為Oracle。這里就涉及到兩個(gè)系統(tǒng)之間數(shù)據(jù)的傳遞。 實(shí)現(xiàn)架構(gòu)如下: 首先Dealer的數(shù)據(jù)通過MSMQ傳遞到MSMQ Server,此時(shí)可以將數(shù)據(jù)插入到SQL Server數(shù)據(jù)庫中,同時(shí)利用FTP將數(shù)據(jù)傳送到專門的文件服務(wù)器上。然后利用IBM的EAI技術(shù)(企業(yè)應(yīng)用集成,Enterprise Application Itegration)定期將文件服務(wù)器中的文件,利用接口規(guī)范寫入到EAI數(shù)據(jù)庫服務(wù)器中,并最終寫道EBS的Oracle數(shù)據(jù)庫中。 上述架構(gòu)是一個(gè)典型的分布式處理結(jié)構(gòu),而技術(shù)實(shí)現(xiàn)的核心就是MSMQ和EAI。由于我們已經(jīng)定義了統(tǒng)一的接口規(guī)范,在通過消息隊(duì)列形成文件后,此時(shí)的數(shù)據(jù)就已經(jīng)與平臺無關(guān)了,完成數(shù)據(jù)的處理。 Filed under: Design amp。 Pattern — bruce zhang @ 6:20 pm 《解剖PetShop》系列之四四 如果對微型計(jì)算機(jī)硬件系統(tǒng)有足夠的了解,那么我們對于Cache這個(gè)名詞一定是耳熟能詳?shù)?。在CPU以及主板的芯片中,都引入了這種名為高速緩沖存儲器(Cache)的技術(shù)。因?yàn)镃ache的存取速度比內(nèi)存快,因而引入Cache能夠有效的解決CPU與內(nèi)存之間的速度不匹配問題。硬件系統(tǒng)可以利用Cache存儲CPU訪問概率高的那些數(shù)據(jù),當(dāng)CPU需要訪問這些數(shù)據(jù)時(shí),可以直接從Cache中讀取,而不必訪問存取速度相對較慢的內(nèi)存,從而提高了CPU的工作效率。軟件設(shè)計(jì)借鑒了硬件設(shè)計(jì)中引入緩存的機(jī)制以改善整個(gè)系統(tǒng)的性能,尤其是對于一個(gè)數(shù)據(jù)庫驅(qū)動(dòng)的Web應(yīng)用程序而言,緩存的利用是不可或缺的,畢竟,數(shù)據(jù)庫查詢可能是整個(gè)Web站點(diǎn)中調(diào)用最頻繁但同時(shí)又是執(zhí)行最緩慢的操作之一,我們不能被它老邁的雙腿拖緩我們前進(jìn)的征程。緩存機(jī)制正是解決這一缺陷的加速器。 。通過某種方法,將系統(tǒng)需要的數(shù)據(jù)對象、Web頁面存儲在內(nèi)存中,使得Web站點(diǎn)在需要獲取這些數(shù)據(jù)時(shí),不需要經(jīng)過繁瑣的數(shù)據(jù)庫連接、查詢和復(fù)雜的邏輯運(yùn)算,就可以“觸手可及”,如“探囊取物”般容易而快速,從而提高整個(gè)Web系統(tǒng)的性能。一種是應(yīng)用程序緩存,它允許開發(fā)者將程序生成的數(shù)據(jù)或報(bào)表業(yè)務(wù)對象放入緩存中。另外一種緩存機(jī)制是頁輸出緩存,利用它,可以直接獲取存放在緩存中的頁面,而不需要經(jīng)過繁雜的對該頁面的再次處理。應(yīng)用程序緩存其實(shí)現(xiàn)原理說來平淡無奇。放入緩存中的應(yīng)用程序數(shù)據(jù)對象,以鍵/值對的方式存儲,這便于用戶在訪問緩存中的數(shù)據(jù)項(xiàng)時(shí),可以根據(jù)key值判斷該項(xiàng)是否存在緩存中。放入在緩存中的數(shù)據(jù)對象其生命周期是受到限制的,即使在整個(gè)應(yīng)用程序的生命周期里,也不能保證該數(shù)據(jù)對象一直有效。,例如當(dāng)數(shù)據(jù)項(xiàng)無效、過期或內(nèi)存不足時(shí)移除它們。此外,調(diào)用者還可以通過CacheItemRemovedCallback委托,定義回調(diào)方法使得數(shù)據(jù)項(xiàng)被移除時(shí)能夠通知用戶。 Framework中。它是一個(gè)密封類,不能被繼承。對于每一個(gè)應(yīng)用程序域,都要?jiǎng)?chuàng)建一個(gè)Cache類的實(shí)例,其生命周期與應(yīng)用程序域的生命周期保持一致。我們可以利用Add或Insert方法,將數(shù)據(jù)項(xiàng)添加到應(yīng)用程序緩存中,如下所示:Cache[”First”] = “First Item”。(”Second”, “Second Item”)。我們還可以為應(yīng)用程序緩存添加依賴項(xiàng),使得依賴項(xiàng)發(fā)生更改時(shí),該數(shù)據(jù)項(xiàng)能夠從緩存中移除:string[] dependencies = {”Second”}。(”Third”, “Third Item”,new (null, dependencies))。與之對應(yīng)的是緩存中數(shù)據(jù)項(xiàng)的移除。,但我們也可以通過代碼編寫的方式顯式的移除相關(guān)的數(shù)據(jù)項(xiàng):(”First”)。相對于應(yīng)用程序緩存而言,頁輸出緩存的應(yīng)用更為廣泛。,當(dāng)客戶端再一次訪問該頁面時(shí),可以省去頁面處理的過程,從而提高頁面訪問的性能,以及Web服務(wù)器的吞吐量。例如,在一個(gè)電子商務(wù)網(wǎng)站里,用戶需要經(jīng)常查詢商品信息,這個(gè)過程會(huì)涉及到數(shù)據(jù)庫訪問以及搜索條件的匹配,在數(shù)據(jù)量較大的情況下,如此的搜索過程是較為耗時(shí)的。此時(shí),利用頁輸出緩存就可以將第一次搜索得到的查詢結(jié)果頁存儲在緩存中。當(dāng)用戶第二次查詢時(shí),就可以省去數(shù)據(jù)查詢的過程,減少頁面的響應(yīng)時(shí)間。頁輸出緩存分為整頁緩存和部分頁緩存。我們可以通過@OutputCache指令完成對Web頁面的輸出緩存。它主要包含兩個(gè)參數(shù):Duration和VaryByParam。Duration參數(shù)用于設(shè)置頁面或控件進(jìn)行緩存的時(shí)間,其單位為秒。如下的設(shè)置表示緩存在60秒內(nèi)有效: %@ OutputCache Duration=“60“ VaryByParam=“none“ %只要沒有超過Duration設(shè)置的期限值,當(dāng)用戶訪問相同的頁面或控件時(shí),就可以直接在緩存中獲取。使用VaryByParam參數(shù)可以根據(jù)設(shè)置的參數(shù)值建立不同的緩存。例如在一個(gè)輸出天氣預(yù)報(bào)結(jié)果的頁面中,如果需要為一個(gè)ID為txtCity的TextBox控件建立緩存,其值將顯示某城市的氣溫,那么我們可以進(jìn)行如下的設(shè)置: %@ OutputCache
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1