国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開(kāi)發(fā)>異步任務(wù)處理在復(fù)雜Web應(yīng)用中的研究設(shè)計(jì)

異步任務(wù)處理在復(fù)雜Web應(yīng)用中的研究設(shè)計(jì)

2017-10-24 | rar | 0.6 MB | 次下載 | 1積分

資料介紹

在Web應(yīng)用中,某些功能的實(shí)現(xiàn)邏輯很復(fù)雜、執(zhí)行比較耗時(shí)[1],例如涉及外部系統(tǒng)調(diào)用、多數(shù)據(jù)源等;此時(shí),希望可以讓這些復(fù)雜的業(yè)務(wù)邏輯放在后臺(tái)執(zhí)行,而前臺(tái)與用戶的交互可以不用等待,從而提高用戶體驗(yàn);或者需要以一定時(shí)間間隔重復(fù)運(yùn)行任務(wù)、或在每天的指定時(shí)間運(yùn)行任務(wù)的情況。為此,需要控制大型任務(wù)對(duì)服務(wù)器資源的消耗,降低Web服務(wù)器的并發(fā)連接數(shù)目,這就需要將大型任務(wù)的提交和執(zhí)行分開(kāi),使服務(wù)器接受任務(wù)后立即斷開(kāi)與客戶端的連接,減少服務(wù)器的并發(fā)連接數(shù),而任務(wù)則推遲到服務(wù)器資源許可時(shí)執(zhí)行,以抑制服務(wù)器資源的峰值消耗。
  為盡量減少耗時(shí)操作對(duì)執(zhí)行的影響,本文提出了異步任務(wù)的處理,使用多線程來(lái)管理耗時(shí)任務(wù),作為后臺(tái)進(jìn)程執(zhí)行;同時(shí)把任務(wù)信息都持久化在數(shù)據(jù)庫(kù)中,保證了異步任務(wù)處理的靈活性、可靠性。
  1 多線程
  1.1線程池
  一個(gè)線程是程序中的一條執(zhí)行流,是操作系統(tǒng)分配處理器的基本單位。并發(fā)是程序中多條執(zhí)行流的同時(shí)推進(jìn),多任務(wù)并發(fā)對(duì)應(yīng)多線程并發(fā)[2]。
  但是為每個(gè)任務(wù)創(chuàng)建一個(gè)線程,當(dāng)任務(wù)完成時(shí)撤消對(duì)應(yīng)的線程存在明顯的缺陷。線程的創(chuàng)建需要一定的時(shí)間,給任務(wù)請(qǐng)求的響應(yīng)帶來(lái)延遲,線程的創(chuàng)建和撤消也給操作系統(tǒng)帶來(lái)額外的管理負(fù)擔(dān),若頻繁“創(chuàng)建和撤消”,則將明顯增加系統(tǒng)的額外開(kāi)銷。為有效降低線程重復(fù)創(chuàng)建和撤銷方面的開(kāi)支可以采用線程池技術(shù)。
  線程池技術(shù)提供了一種較好的解決方案[3]:系統(tǒng)維護(hù)由若干個(gè)線程組成的線程池。當(dāng)有任務(wù)請(qǐng)求到達(dá)時(shí),由池中的一個(gè)線程為之運(yùn)行,在任務(wù)完成后不是將該線程撤消而是將其歸還線程池,使之能夠?yàn)楹罄m(xù)到達(dá)的任務(wù)服務(wù);若線程池中沒(méi)有空閑的線程,則任務(wù)進(jìn)入等待狀態(tài)直到有空閑的線程。
  1.2 Java中的線程池實(shí)現(xiàn)機(jī)制
  Java在語(yǔ)言級(jí)實(shí)現(xiàn)了功能豐富的多線程編程機(jī)制[4],對(duì)線程池的建立和維護(hù)提供了強(qiáng)大的支持。特別在JDK1.5及以后的版本中,任務(wù)執(zhí)行抽象的首選不再是Thread,而是Executor。Executor雖是一個(gè)簡(jiǎn)單的接口,但它提供了異步任務(wù)執(zhí)行框架并支持多種不同類型的任務(wù)執(zhí)行策略,ExecutorService接口和ScheduledExecutorService接口對(duì)Executor進(jìn)行了擴(kuò)展,添加了管理線程執(zhí)行和調(diào)度線程池的若干方法。通過(guò)Executors工具類提供的靜態(tài)工廠方法可以創(chuàng)建符合特定需求的基于線程池執(zhí)行框架。
  newChachedThreadPool()方法用于創(chuàng)建可緩存線程池的執(zhí)行框架。當(dāng)新的請(qǐng)求任務(wù)到達(dá)時(shí),執(zhí)行框架將盡可能地重用池中的空閑線程,若此時(shí)池中沒(méi)有空閑線程,則添加新線程,這個(gè)方法對(duì)池的大小沒(méi)有限制。另一方面,該執(zhí)行框架能夠自動(dòng)回收空閑時(shí)間超過(guò)60 s的線程,以合理使用系統(tǒng)資源。對(duì)于執(zhí)行大量短異步任務(wù)的程序而言,這種方式的線程池通常可提高性能。
  newFixedThreadPool(int nThreads)方法建立的執(zhí)行框架中的線程池具有固定數(shù)量的線程。每提交一個(gè)任務(wù)它就創(chuàng)建一個(gè)線程,直到達(dá)到池的限定值nThreads,線程池的長(zhǎng)度不再變化,新到達(dá)的任務(wù)在一個(gè)遵循先來(lái)先服務(wù)(FIFS)規(guī)則的無(wú)界隊(duì)列中等待執(zhí)行。
  newScheduledThreadPool(int nThreads)方法建立的執(zhí)行框架中的線程池也是定長(zhǎng)的,它支持定時(shí)的以及周期性的任務(wù)的執(zhí)行。
  這些工廠方法返回的Executor 都是ThreadPoolExecutor()類的常用實(shí)例,能滿足大部分線程池的應(yīng)用需求。
  2 設(shè)計(jì)思路
  為保證異步任務(wù)處理的靈活性和可靠性,本文設(shè)計(jì)的思路為:任務(wù)持久化+Java線程池+任務(wù)調(diào)度。
  2.1 任務(wù)持久化
  將待處理的任務(wù)信息保存在可信任的數(shù)據(jù)庫(kù)中,同時(shí)要確保當(dāng)任務(wù)處理服務(wù)器出問(wèn)題后這些未執(zhí)行成功、或未開(kāi)始執(zhí)行的任務(wù)不會(huì)被丟失。
  2.2 任務(wù)調(diào)度
  當(dāng)任務(wù)信息都持久化在數(shù)據(jù)庫(kù)中之后,需要將這些信息讀取出來(lái)執(zhí)行具體的業(yè)務(wù)邏輯操作,本文通過(guò)ScheduledExecutorService來(lái)實(shí)現(xiàn)對(duì)任務(wù)的循環(huán)調(diào)度,例如可采取每隔2 min掃描一次待處理任務(wù)列表,若有記錄則提取出來(lái)執(zhí)行。
  3 具體實(shí)現(xiàn)
  異步任務(wù)處理中各組成部分在運(yùn)行過(guò)程中的調(diào)用關(guān)系如圖1。
  異步任務(wù)處理在復(fù)雜Web應(yīng)用中的研究設(shè)計(jì)
  當(dāng)客戶端訪問(wèn)服務(wù)器時(shí),有耗時(shí)操作的任務(wù),則把該任務(wù)放入數(shù)據(jù)庫(kù)中。服務(wù)器每隔一段時(shí)間輪詢存放待處理任務(wù)的表,若表中有任務(wù),則任務(wù)調(diào)度線程池采用多線程機(jī)制來(lái)執(zhí)行該任務(wù)。任務(wù)執(zhí)行成功后,刪除待處理任務(wù)表中的該任務(wù)信息,否則把該任務(wù)信息更新到任務(wù)失敗表,進(jìn)行人工干預(yù)。
  3.1 任務(wù)數(shù)據(jù)表
  建兩張表,一張task表,用來(lái)存放待處理的任務(wù);一張task_fail表用來(lái)存放失敗的任務(wù)。兩張表的結(jié)構(gòu)一樣,結(jié)構(gòu)如表1所示。
  異步任務(wù)處理在復(fù)雜Web應(yīng)用中的研究設(shè)計(jì)
  task表主要用來(lái)保存所有待處理的任務(wù),每條任務(wù)信息屬于一種任務(wù)類型,由task_handle字段標(biāo)識(shí),任務(wù)類型值為該類型任務(wù)的具體實(shí)現(xiàn)類名。task_params 字段提供了執(zhí)行該任務(wù)需要的所有參數(shù),為字符串,需要在具體任務(wù)實(shí)現(xiàn)類中解析。handle_time字段提供了任務(wù)待執(zhí)行的日期。
響應(yīng)時(shí)間 Web應(yīng)用
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1冷柜-電氣控制系統(tǒng)講解
  2. 13.68 MB  |  4次下載  |  10 積分
  3. 2安川A1000變頻器中文版說(shuō)明書(shū)
  4. 20.16 MB  |  3次下載  |  3 積分
  5. 3直流電路的組成和基本定律
  6. 1.67 MB   |  2次下載  |  免費(fèi)
  7. 4丹佛斯2800系列變頻器說(shuō)明書(shū)
  8. 8.00 MB  |  1次下載  |  5 積分
  9. 5PC8011同步開(kāi)關(guān)型降壓3.5A單節(jié)鋰電池充電管理電路技術(shù)手冊(cè)
  10. 0.74 MB   |  1次下載  |  免費(fèi)
  11. 6ES7243E+ES8311音頻錄制與播放電路資料
  12. 0.06 MB   |  1次下載  |  5 積分
  13. 7SDM02 激光測(cè)距模塊產(chǎn)品手冊(cè)
  14. 0.43 MB   |  1次下載  |  免費(fèi)
  15. 8SDFM 激光測(cè)距模塊模組手冊(cè)
  16. 0.54 MB   |  1次下載  |  免費(fèi)

本月

  1. 1CH341編程器軟件NeoProgrammer_2.2.0.10
  2. 20.47 MB   |  170次下載  |  1 積分
  3. 22025智能家居傳感器市場(chǎng)分析及創(chuàng)新應(yīng)用
  4. 3.11 MB  |  43次下載  |  免費(fèi)
  5. 3RV1126B系列開(kāi)發(fā)板產(chǎn)品資料
  6. 4.19 MB  |  18次下載  |  免費(fèi)
  7. 4CH341編程軟件下載
  8. 2.50 MB   |  16次下載  |  5 積分
  9. 5全志系列-米爾基于T153核心板開(kāi)發(fā)板 四核異構(gòu)、3路千兆網(wǎng),賦能多元化工業(yè)場(chǎng)景
  10. 3.05 MB  |  12次下載  |  免費(fèi)
  11. 6【開(kāi)源】60余套STM32單片機(jī)、嵌入式Linux、物聯(lián)網(wǎng)、人工智能項(xiàng)目案例及入門(mén)學(xué)習(xí)資源包
  12. 10.55 MB  |  8次下載  |  免費(fèi)
  13. 7冷柜-電氣控制系統(tǒng)講解
  14. 13.68 MB  |  4次下載  |  10 積分
  15. 8特斯拉MODEL S車載充電機(jī)主電路回路原理圖
  16. 0.81 MB   |  4次下載  |  3 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233094次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191448次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183356次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81604次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73824次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分