新聞中心
隨著移動互聯(lián)網(wǎng)的迅速發(fā)展,異步隊列技術的日益重要,應用范圍不斷地擴大,對業(yè)務系統(tǒng)的性能和可擴展性有著深遠的影響。靈活的異步隊列處理能夠實現(xiàn)觸發(fā)調(diào)用,讓業(yè)務代碼更加簡潔,可擴展性更強。

我們需要先定義一個任務隊列,這個任務隊列由一組信息構成,每個任務各不相同,它們支持觸發(fā)調(diào)用、延遲調(diào)用和失敗調(diào)用等多種調(diào)度方式。其實質(zhì)就是利用消息隊列,處理任務,隊列里存放任務數(shù)據(jù),然后由服務器程序調(diào)度和執(zhí)行任務。在一個隊列里,定義多個任務,每個任務中都可以安排多次調(diào)用,也就是在消息隊列里可以實現(xiàn)多次觸發(fā)調(diào)用。
任務的傳輸是異步的,傳輸過程主要包括:寫入調(diào)度數(shù)據(jù)到消息隊列,任務服務器從隊列中讀取,然后執(zhí)行調(diào)用操作,最后將執(zhí)行結果寫入到一個回調(diào)隊列,用于存儲調(diào)用結果。
以下是演示代碼:客戶端用于觸發(fā)調(diào)用
Queue queue = new Queue("tasks");
// 寫入調(diào)度數(shù)據(jù)
queue.push({'method':'notify', 'params':{'message':'aaaaaaaaa'}});
任務服務端:
Queue queue = new Queue("tasks");
while(true)
{
// 從任務隊列讀取調(diào)度數(shù)據(jù)
Dictionary msgQueue = queue.pop();
// 執(zhí)行調(diào)用操作
Object result = ExecuteMethod(msgQueue.get('method',msgQueue.get('params'));
// 將調(diào)用結果寫入回調(diào)隊列
Queue callbackQueue = new Queue("result");
callbackQueue.push(result);
}
使用異步隊列實現(xiàn)觸發(fā)調(diào)用有很多優(yōu)點,其中最重要的是可以提升業(yè)務服務系統(tǒng)性能,以異步的方式來分發(fā)任務,可以極大地提高系統(tǒng)的吞吐量;另外,由于可以實現(xiàn)多次觸發(fā)調(diào)用,調(diào)度算法更為靈活,能力自定義處理任務的條件,可以滿足多種計劃任務的運行需要,同時,一旦出現(xiàn)任務失敗的情況時,可以做出及時的響應和處理;運算負載得到平均分布,減少單實例的壓力,有助于提高可擴展性。
使用異步隊列實現(xiàn)觸發(fā)調(diào)用是一個明智的選擇,為業(yè)務系統(tǒng)性能、可擴展性提供了很大幫助。它是開發(fā)過程實現(xiàn)消息隊列化任務服務的重要途徑,可謂是紅色跡象,令開發(fā)人員收獲完整且有利可圖的整體解決方案。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
當前文章:紅色跡象使用異步隊列實現(xiàn)觸發(fā)調(diào)用(redis隊列異步調(diào)用)
分享地址:http://m.5511xx.com/article/dppgosh.html


咨詢
建站咨詢
