基於Spring打造簡單高效通用的非同步任務處理系統

背景隨著應用系統功能的不斷新增,而某些功能的實現對即時性要求並不是那麼高,但是邏輯卻很複雜、執行比較耗時,比如涉及外部系統調用、多資料來源等等;此時,我們就希望可以讓這些複雜的商務邏輯放在後台執行,而前台與使用者的互動可以不用等待,從而提高使用者體驗;另外,從系統架構這個層面來說,我們也希望按照不同功能來拆分,以保持各個系統之間的低耦合,當一個系統出現問題時不會影響到其他系統,並且對於獨立的各個系統,我們可以專門進行效能最佳化、監控等;所以我們需要通用、高效的非同步任務處理系統;設計目標打造輕量

站在巨人的肩膀上 — 書籍推薦

隨著這個世界越來越依賴我們的實踐,作為電腦行業的從業人員,對電腦行業的 science實在有必要給與應有的尊重。行動的第一步,就是閱讀一些經典的著作,掌握前人/前輩/行業大家們總結出來的知識和行之有效實踐,在日常實踐中使用這些知識和實踐,成為一個更好的開發人員。他將這些著作分成五大類:基本讀物(Foundational Texts)(每個開發人員都應該讀的,沒有例外,不管什麼經驗或平台。這些讀物注重討論如何編寫更好,可維護的代碼,向堅實的物件導向設計過渡)Code Complete, 2nd

初探SOA(補充)

   SOA是一種應用程式框架,它著眼於日常的業務應用,並將它們劃分為單獨的業務功能和流程,即所謂的服務。它使使用者可以構建、部署和整合這些服務,且無需依賴應用程式及其運行計算平台,從而提高商務程序的靈活性。這種業務靈活性可使企業加快發展速度,降低總體擁有成本,改善對及時、準確資訊的訪問。SOA有助於實現更多的資產重用、更輕鬆的管理和更快的開發與部署,在當今的業務環境中,變化是毫無疑問的,因此快速響應客戶需求、市場機遇和外部威脅的敏捷性,輕鬆應對企業商務服務變化、發展的需要比以往任何時候都更顯重

Apache Commons工具集簡介

      

通過.htaccess檔案檢測不良蜘蛛

一周前,筆者分享過一篇文章《seo診斷:透過Log日誌找到網站死結》,並在最後附上了兩條改善建議。由於客觀條件所限,最後採用robots 屏蔽的方法。先一起來看看一周后的蜘蛛變化,三大主流蜘蛛總抓取量銳減,證明robots檔案開始生效。從圖上的訪問次數、總停留時間和總抓取量看,有所進步但路還很遠。                  然而,從11號開始,網站LOG日誌開始出現眾多中文非主流蜘蛛訪問,其中不乏知名俄羅斯搜尋引擎蜘蛛Yandexbot,還有不明“飛行物”AhrefsBot &

《代碼大全》讀書筆記

P7把主要精力集中於構建活動,可以大大提高程式員的生產率。在最近的一個項目中,對於這一點,我是深有體會。我們花了很長的時間做設計,結果接下來的許多工作都在愉快的心情下完成。我覺得P28的那個食物鏈的例子更有說服力,健康的生態環境中,海鷗吃新鮮的鮭魚,鮭魚吃新鮮的青魚,青魚吃新鮮的水蝽。這是一條健康的食物鏈。如果環境被汙染了,水蝽在汙染的水域遊泳,那麼海鷗,食物鏈的最後一環吃下的不僅僅是是不健康的鮭魚體內的垃圾,還有青魚,水蝽體內的汙染物。軟體開發中,架構師吃掉需求,設計師吃掉架構,程式員,軟體食

《POJOS in Action》讀書筆記

前言:好久沒有系統性的看過書了,早就聽說《POJOsinAction》是本好書,可惜自己一直不能靜下心來學習,此次在部落格上記錄我的學習筆記原因有兩點,第一是想通過部落格來監督我把這本書讀完,其二是覺得自己總是在互連網上“剽竊”人家的學習成果,而自己從來都沒有為大家貢獻自己的成果,實在是有點內疚,希望我的學習筆記對大家有所協助。系統設計時需要考慮的五大因素:1、如何組織商務邏輯2、如何封裝商務邏輯,以及暴露給展示層及其他客戶程式調用的介面3、如何訪問資料庫4、如何處理短事務中的並發5、如何處理長

Composite組合模式

一、引子在大學的資料結構這門課上,樹是最重要的章節之一。還記得樹是怎麼定義的嗎?樹(Tree)是n(n≥0)個結點的有限集T,T為空白時稱為空白樹,否則它滿足如下兩個條件:(1)   有且僅有一個特定的稱為根(Root)的結點;(2)  其餘的結點可分為m(m≥0)個互不相交的子集Tl,T2,…,Tm,其中每個子集本身又是一棵樹,並稱其為根的子樹(SubTree)。上面給出的遞迴定義刻畫了樹的固有特性:一棵非空樹是由若干棵子樹構成的,而子樹又可由若干棵更小的子樹構成。而這裡的子樹可以是葉子也可以

Junit實現spring的單元測試

 spring提供的單元測試是強大的,spring的單元測試很簡單,封裝的很好。我們要用spring的單元測試測試我們寫的add,delete等方法時候需要spring提供的一個額外包spring-mock.jar,我已經傳上來了。你只要熟悉單元測試,編寫一個測試案例,然後把繼承改為org.springframework.test.AbstractTransactionalDataSourceSpringContextTests就可以了,此時編譯器會提示你要實現public String[] g

catch、finally中同時有return語句時的執行順序

相關讀書筆記、心得文章列表       很多人搞不清楚catch和finally執行順序,有人會說,當然是先catch後finally,沒錯,是的這樣的,但當catch和finally中都有return語句的時候,他們的執行順序又該是怎麼樣的呢?在這樣的情況下我們可以這樣理解,catch會把它return的對象先儲存在一個棧中,如果finally中也有return語句,就將該對象入棧,當finally語句執行完畢之後,就取棧頂的對象返回,可以來看幾個點單的例子:public int test1(

中文化和國際化問題權威解析之七:JS中的escape、encodeURI、encodeURIComponent解惑

前面一篇文檔《中文化和國際化問題權威解析之五:URL編碼/Misc》主要是從服務端、瀏覽器兩個角度來看待URL編碼;除此之外,我們還可能在用戶端執行一些js指令碼來進行URL編碼,與此相關的最主要的三個js function為:escape():採用ISO Latin字元集對指定的字串進行編碼。所有的空格符、標點符號、特殊字元以及其他非ASCII字元都將被轉化成%xx格式的字元編碼(xx等於該字元在字元集表裡面的編碼的16進位數字)。比如,空格符對應的編碼是%20。unescape方法與此相反。

25種下拉式導覽功能表

相關讀書筆記、心得文章列表25 Scripts for Dropdown Navigation MenusNavigation menus are important to any website. Well designed navigation can improve the look and appearance of a site as well as the usability. For larger sites with a lot of content or pages,

列印系列 —— web頁面直接列印

web頁面列印:   簡單的網頁列印可以直接使用window.print()方法實現,但此功能比較弱,涉及比較複雜的列印時,可以利用JS實現的列印功能,直接調用JS相應的介面,可以很容易的實現預覽列印、列印設定等功能。一個完整的JSP代碼如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TIT

網頁上嵌入播放器

        這個看似高深的東東,其實很簡單,只要在HTML上添加以上代碼就OK了,前提是你的電腦上已經安裝了播放器,如RealPlay。<embed src="F:/mp3/10.19/白色戀人.mp3(音樂的地址)" width="480" height="100"       loop="false" autostart="false"></embed>   

Quartz初接觸—屬於自己的開荒

今天被同事鄙視了.why?因為,雖然經常配置quartz的運算式,但沒搭建過,故而從頭來過,洗刷恥辱.1.在官網下載檔案http://www.quartz-scheduler.org/現在的版本是2.2    quartz-2.2.0-distribution.tar.gz 2.學習exampleexample1 -  Your first Quartz Programpackage org.quartz.examples.example1;import

列印系列 —— web頁面匯出成word文檔

將所傳的DIV或者table輸出(拷貝)到word文檔。代碼如下:<HTML>   <HEAD>     <title>     </title>   </HEAD> <body> <form id="form"> <table id = "PrintA" width="100%" border="1" cellspacing="0" cellpadding="0" > <TR style="t

IE環境下的安全警告匯總

可能大家都對IE環境下訪問HTTPS網站的一些安全警告有過接觸,比如HTTP和HTTPS之間的互相跳轉會彈出警告……;但是這並不是全部,IE環境下訪問HTTPS網站還有很多類型的安全警告,下面將一一道來;以後如果大家遇到此類提醒也可以知道是怎麼回事,對解決一些使用者的疑問也會有所協助;第1類:進入或離開安全頁面         這裡說的安全頁面就是通過HTTPS進行訪問的頁面;這類型的警告是最常見的;         該類型的警告可以被關閉,勾選《以後不再顯示該警告》即可,對應於

路(二)

一個老實的孩子走在這個油光滿面的金光大道上.著實放不開手腳,使不上力氣.跟許多人一樣,是個普通人,有惰性,有懶散有勤奮,有不折不撓.但,所以,才是個普通人不會鑽營,不會巴結,不太用功,最可惜的是.............不夠聰明.不能把自己的一天當做別人的一周,所以,天大的成功,與我無緣,所以,普普通通但是,我完蛋了麼?我垂垂暮已了?還是我怎樣了?看到兩年前我寫的一篇<路>不由思慮萬千,我的朝氣,我的金光燦爛,我的豪氣勃發哪兒去了?是,我剛剛結了婚,生活走上了一個可以預見的軌道但,憑

列印系列 —— web頁面匯出成Excel文檔

   這個方法只能匯出一般的規則的頁面表格,如有合併儲存格什麼等稍複雜的格式則不適用,就要考慮使用其他的組件了<title>瀏覽器表格匯出到Excel</title><input type="button" name="out_word1" onclick="AutomateExcel()"         value="匯出到excel" class="notPrint"><table id="data" width="200" border="1"&

List list=new ArrayList()怎麼理解???

一、List是介面,ArrayList是List的實作類別。     這是java向下轉型,多態,父類引用指向子類對象。     List是介面,它是不可以被執行個體化的(介面是個抽象類別),所以必須以它的實作類別去執行個體化它。。二、  至於為什麼是寫成List list = new ArrayList()而不是ArrayList arrayList = new ArrayList()有如下的原因:   1、介面有什麼好處,這種定義方式就有什麼好處      當然你可以用 ArrayList 

總頁數: 61357 1 .... 20914 20915 20916 20917 20918 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.