NancyFx框架檢測任務(wù)管理器詳解
本文為大家分享了NancyFx框架檢測任務(wù)管理器的具體方法,供大家參考,具體內(nèi)容如下
先建一個空的項目和之前的NancyFx系列一樣的步驟
然后建三個文件夾Models,Module,Views
然后分別安裝一下組件
jQuery
Microsoft.AspNet.SignalR
Microsoft.Owin
Nancy
Nancy.Owin
然后往Model類里面添加CPUHub類,Broadcaster類
CPUHub類
public class CPUHub:Hub
{
private readonly Broadcaster broadcaster;
public CPUHub():this(Broadcaster.broadcaster)
{
}
public CPUHub(Broadcaster broadcaster)
{
this.broadcaster = broadcaster;
}
}
Broadcaster類
public class Broadcaster
{
private readonly static Lazy<Broadcaster> lazy = new Lazy<Broadcaster>(()=>new Broadcaster(GlobalHost.ConnectionManager.GetHubContext<CPUHub>().Clients));
private readonly TimeSpan timeSpan = TimeSpan.FromMilliseconds(1000);
private readonly Timer timer;
public static Broadcaster broadcaster
{
get { return lazy.Value; }
}
private IHubConnectionContext hubConnectionContext
{
get;
set;
}
private Broadcaster(IHubConnectionContext hubConnectionContexts)
{
hubConnectionContext = hubConnectionContexts;
timer = new Timer(BroadcastCpuUsage,null,timeSpan,timeSpan);
}
private void BroadcastCpuUsage(object o)
{
string cpu = GetCurrentCpu();
}
private string GetCurrentCpu()
{
string currentCpu = "";
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("http://localhost:3039");
var response = httpClient.GetAsync("api/cpu").Result;
if (response.IsSuccessStatusCode)
{
currentCpu = response.Content.ReadAsStringAsync().Result;
}
return currentCpu;
}
}
然后在往Module里面添加CPUModule類
public class CPUModule:NancyModule
{
PerformanceCounter performanceCounter;
public CPUModule():base("api/cpu")
{
InitializePerformanceCounter();
Get("/",Lexan=>
{
int cpu = (int)Math.Ceiling(performanceCounter.NextValue());
return Response.AsText(cpu.ToString());
});
}
private void InitializePerformanceCounter()
{
performanceCounter = new PerformanceCounter();
performanceCounter.CategoryName = "";
performanceCounter.CounterName = "";
performanceCounter.InstanceName = "";
performanceCounter.NextValue();
Thread.Sleep(1000);
}
}
然后添加index.html頁面在根目錄下
<!DOCTYPE html> <html> <head> <title>NancyTaskManager</title> </head> <body> <label id="lblVal"></label> <br /> <canvas id="cvPercentage"></canvas> <br /> <br /> <canvas id="cvGraph" height="450" width="600"></canvas> <script src="Scripts/jquery-2.1.0.js"></script> <script src="Scripts/jquery.signalR-2.0.2.js"></script> <script src="Scripts/Chart.js"></script> <script src="/signalr/hubs"></script> <script src="Scripts/taskManager.js"></script> </body> </html>
繼續(xù)往根目錄里面添加Startup類
[assembly:OwinStartup(typeof( NancyFxTaskManager.Startup))]
namespace NancyFxTaskManager
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR().UseNancy();
}
}
}
好了我們準備就緒,看看運行效果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。
上一篇:C#讀寫txt文件的2種方法
欄 目:C#教程
下一篇:C#實現(xiàn)QQ截圖功能及相關(guān)問題
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/5433.html
您可能感興趣的文章
- 01-10C#開源的AOP框架--KingAOP基礎(chǔ)
- 01-10結(jié)合.net框架在C#派生類中觸發(fā)基類事件及實現(xiàn)接口事件
- 01-10c#檢測文本文件編碼的方法
- 01-10詳解C#借助.NET框架中的XmlTextReader類讀取XML的方法
- 01-10基于mvc5+ef6+Bootstrap框架實現(xiàn)身份驗證和權(quán)限管理
- 01-10C# ping網(wǎng)絡(luò)IP 實現(xiàn)網(wǎng)絡(luò)狀態(tài)檢測的方法
- 01-10C#如何檢測操作系統(tǒng)版本
- 01-10微信公眾平臺開發(fā)教程(三) 基礎(chǔ)框架搭建
- 01-10windows下C#定時管理器框架Task.MainForm詳解
- 01-10Quartz.Net調(diào)度框架配置解析


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結(jié)


