用Java多線程,將任務分步驟處理__Java

來源:互聯網
上載者:User

情境簡單,其實就是在做WEB請求的時候,處理的結果需要同時通知到一個第三方伺服器,通知後再把結果返回給用戶端。

現在這個通知只是一個簡單通知,如果直接加在用戶端請求裡面,用戶端會在請求第三方伺服器時堵塞。另外為了用戶端不能逾時,所以通知失敗後也不敢多次請求。

 

這裡可以使用定製任務來解決這個問題,一個用戶端請求後產生一個定製的任務,然後服務後台進行多線程的非同步處理,這樣就會大大減少用戶端的請求時間,同樣最大程度保證這個通知是及時成功給第三方的。

定製任務我們需要一張表,來儲存任務。同時需要多線程來執行這些任務。至於誰來開啟這些任務,你可以使用定時器:http://javacui.com/framework/24.html,也可以使用後台線程。因為定時器已經有樣本了,這裡來說下後台線程。

 

因為是WEB服務,在服務啟動的時候註冊一個啟動監聽: ?

1 2 3 4 5 6 <!-- 初始化系統需要的配置項 開始 --> < listener >   < display-name >webListener</ display-name >   < listener-class >cn.com.vogue.listener.InitListener</ listener-class > </ listener > <!-- 初始化系統需要的配置項 結束 -->

然後我們來實現這個監聽處理,主要任務就是開啟一個後台線程,即時查詢是否有需要執行的任務,有的話就分發任務給子線程。

同時為了系統的可配性,這個主線程是否開啟做一個配置項,載入的時候判斷一下即可: ?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.