真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

webapi+Task并行請求不同接口實例

標題的名稱定義不知道是否準確,不過我想表達的意思就是使用Task特性來同時請求多個不同的接口,然后合并數(shù)據(jù);我想這種場景的開發(fā)對于對接過其他公司接口的人不會陌生,本人也是列屬于之內(nèi),更多的是使用最原始的異步委托的方法去處理,今天抽空寫了一個使用4.5新特性Task來處理這種場景;各位看客有什么疑問或者好的建議及分享請博客通知,謝謝。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:主機域名、虛擬主機、營銷軟件、網(wǎng)站建設、三門峽網(wǎng)站維護、網(wǎng)站推廣。

A.項目結(jié)構(gòu)圖

webapi+Task并行請求不同接口實例

B.namespace Pm.V.PM_BLL下面的BaseClass定義如下:

webapi+Task并行請求不同接口實例 View Code

主要是在實例的時候讀取各個業(yè)務模塊的配置文件,初始化一些常用并且是公共的屬性信息;其次創(chuàng)建了一個虛方法_GetArticles,注意里面的參數(shù)是object這個將再后面的時候重提;

C.下面就是請求第三方業(yè)務實現(xiàn)類的代碼,這里測試的時候分別使用

1.CnblogsClass類抓取博客園首頁的博客列表信息

webapi+Task并行請求不同接口實例 View Code

.注意這里使用 : base("")直接繼承了上面說的父類的方法,來初始化配置信息(當然這個可能不算知識點)

.接下來就是實現(xiàn)的_GetArticles方法里面PublicClass._HttpGet方法封裝的HttpClient獲取博客園的數(shù)據(jù)

.解析了返回的數(shù)據(jù)信息(這里使用的正則,可能有些同學覺得正則可能還不太熟悉,可以自行百度參考分析下)

.記錄日志,我這里是記錄的文本日志暫時注釋了,因為怕抓取的信息多,忘記刪除占用空間

以上幾點就是實際情況中經(jīng)常遇到的步奏,這個處理步奏在從來沒有對接過第三方接口的人還是值得學習的

2.HuJiangClass類是抓取了博客園中.Net第一頁的數(shù)據(jù),步奏和方法和上面相同,請關注代碼部分

webapi+Task并行請求不同接口實例 View Code

D.今天要講的主要內(nèi)容來了,以上算是過度,讓人了解對接第三方接口的一些處理步奏和簡單的封裝吧;這里將看到的是Pm.Api.Controllers空間下BlogsController里面的Post方法,代碼如:

webapi+Task并行請求不同接口實例 View Code

1.首先使用了var baseRequest = Newtonsoft.Json.JsonConvert.DeserializeObject(param); 來第一次返序列化,得到驗證的基本信息如賬號,token等

2.常用的接口形式使用參數(shù)節(jié)點名稱來確定將要執(zhí)行的方法,或者直接在節(jié)點值中標注方法的名稱,因此有了這么一句switch (baseRequest.FunName)來判斷程序的走向

3.在此反序列得到真實調(diào)用者post給接口的數(shù)據(jù)(上面第一次反序列使用的是基類,基類里面就包含了驗證需要的屬性,為什么這里不直接使用第一次反序列的對象呢,因為這里將要傳遞給后面方法參數(shù)的值是子類里面封裝的)

4.開始定義Task任務的數(shù)量,一般根據(jù)有幾個第三方接口第一幾個吧,Task[]保證后面產(chǎn)生的任務量

5.Task.Factory.StartNew(dataType._GetArticles, r_GetArticles) 方法來創(chuàng)建任務,這里要說的是dataType._GetArticles是之前上面說的請求第三方接口定義的方法,r_GetArticles這個是需要傳遞的值是object的,這也是StartNew固定的參數(shù)類型;再通過Task[]存儲創(chuàng)建的任務;

6.Task.WaitAll(tasks, 1000 * 1 * 30);這個WaitAll是自帶的,意思是等待任務執(zhí)行多少毫秒,也算是知識點吧,第一個參數(shù)是任務數(shù)組,是數(shù)組的形式,第二個是毫秒單位的等待時間

7.最后通過foreach (var task in tasks) 來循環(huán)整合task.Result返回的結(jié)果

之后是效果截圖DataType表示不同的數(shù)據(jù)來源:

webapi+Task并行請求不同接口實例

 

大致就是這些吧,不知道說的東西是否說明白了,這就是處理對接第三方不同接口的業(yè)務邏輯,也是使用task來并行處理的方法

 


網(wǎng)頁題目:webapi+Task并行請求不同接口實例
網(wǎng)址分享:http://weahome.cn/article/pephjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部