日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

实时监控Cat之旅~对Get和Post进行封装,支持分布式消息树

發(fā)布時(shí)間:2025/1/21 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实时监控Cat之旅~对Get和Post进行封装,支持分布式消息树 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

對(duì)第三方接口的調(diào)用我們需要對(duì)GET和POST進(jìn)行監(jiān)控,看一些請(qǐng)求的執(zhí)行是否成功,如A調(diào)用B,B調(diào)用C,C調(diào)用D,這一連串的東西需要我們使用cat進(jìn)行記錄,進(jìn)行記錄之后,我們可以很容易的發(fā)現(xiàn)請(qǐng)求響應(yīng)的時(shí)間及是否出錯(cuò),下面是我對(duì)這兩種請(qǐng)求的封裝。

/// <summary>/// cat中使用的HttpClient/// </summary>public class CatHttpClient{/// <summary>/// 返回當(dāng)前Cat上下文/// </summary>/// <returns></returns>static CatContext GetCurrentContext(string message){string currentUrl = System.Web.HttpContext.Current.Request.Url.AbsoluteUri;var context = PureCat.CatClient.GetCatContextFromServer();if (context == null){context = PureCat.CatClient.DoTransaction("xuexiba", currentUrl, () =>{PureCat.CatClient.LogEvent("xuexiba", message, "0", currentUrl);});}else{context = PureCat.CatClient.DoTransaction("xuexiba", currentUrl, () =>{PureCat.CatClient.LogRemoteCallServer(context);PureCat.CatClient.LogEvent("xuexiba", message, "0", currentUrl);});}return context;}/// <summary>/// Post數(shù)據(jù)/// </summary>/// <param name="requestUri"></param>/// <param name="content"></param>/// <returns></returns>public static HttpResponseMessage Post(string requestUri, HttpContent content){var handler = new HttpClientHandler() { };using (var http = new HttpClient(handler)){PureCat.CatClient.SetCatContextToServer(http, GetCurrentContext("Post Request Sent..."));var response = http.PostAsync(requestUri, content).Result;return response;}}/// <summary>/// Get數(shù)據(jù)/// </summary>/// <param name="requestUri"></param>/// <returns></returns>public static HttpResponseMessage Get(string requestUri){var handler = new HttpClientHandler() { };using (var http = new HttpClient(handler)){PureCat.CatClient.SetCatContextToServer(http, GetCurrentContext("Get Request Sent..."));//設(shè)置接口api的頭,發(fā)送var response = http.GetAsync(requestUri).Result;return response;}}}

在程序中使用非常方便,如下代碼,一看便知

[AllowAnonymous]public void Step1(){Lind.DDD.CatClientPur.CatHttpClient.Get("Http://localhost:4829/AdminCommon/Step2");}[AllowAnonymous]public void Step2(){Lind.DDD.CatClientPur.CatHttpClient.Get("Http://localhost:4829/AdminCommon/Step3");}[AllowAnonymous]public void Step3(){Lind.DDD.CatClientPur.CatHttpClient.Get("Http://localhost:4829/AdminCommon/Step4");}[AllowAnonymous]public void Step4(){Lind.DDD.CatClientPur.CatHttpClient.Get("Http://localhost:4829/AdminCommon/Error");}

而它產(chǎn)生的消息樹(shù)也是我們希望看到的,即從step1到step4的記錄,如圖

下一講我們將讀一下,如何對(duì)一個(gè)請(qǐng)求從開(kāi)始到結(jié)束進(jìn)行cat的監(jiān)控,敬請(qǐng)期待!

轉(zhuǎn)載于:https://www.cnblogs.com/lori/p/5316343.html

總結(jié)

以上是生活随笔為你收集整理的实时监控Cat之旅~对Get和Post进行封装,支持分布式消息树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。