Asp.Net 5分鐘實(shí)現(xiàn)網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控
一、為什么會(huì)用到網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控
LZ最近在無(wú)錫買房了,雖然在上海工作,但是上海房?jī)r(jià)實(shí)在太高無(wú)法承受,所以選擇還可以接受的無(wú)錫作為安身之地。買過(guò)房的小伙伴可能知道買房的流程,買房中間有一步很重要的就是需要商品房備案,簡(jiǎn)單點(diǎn)說(shuō)就是你買房時(shí)可以在政府商品房備案網(wǎng)站處查看你購(gòu)買房的備案情況,如果是已經(jīng)備案了開(kāi)發(fā)商還在賣這套房子,那肯定就是一房多賣了。而且很重要一點(diǎn)就是,只有備過(guò)案,才能進(jìn)行下一步銀行貸款,在目前銀行利息越來(lái)越高的情況下,肯定是越早備案越早貸款越有利,所以以最快速度知道自己購(gòu)買房子的備案情況尤為重要。
當(dāng)然也可以每天到網(wǎng)站查詢自己的備案情況,顯然這不是程序員的做法,更不是.Net程序員的做法。程序員的做法肯定是備案一旦下來(lái),程序老老實(shí)實(shí)的通知到手機(jī)上。順便吐槽一點(diǎn),查詢備案的網(wǎng)站真慢。
二、選擇windows服務(wù)、窗體(winform)、web還是控制臺(tái)程序?
當(dāng)然最合適的肯定是windows服務(wù),winform和web肯定也可以的,控制臺(tái)程序不一定是最合適的,但肯定開(kāi)發(fā)是最快速的。綜合考慮了一下,因?yàn)槭且粋€(gè)很小的監(jiān)控項(xiàng)目而且只會(huì)用一兩個(gè)月,或者一兩天,所以沒(méi)變要搞那么復(fù)雜,而且windows服務(wù)還要安裝到服務(wù)器,最重要的是控制臺(tái)是最快開(kāi)發(fā)和最容易部署的,所以最終選擇了控制臺(tái)程序。
三、分析需求
1、需要每隔幾分鐘查詢一次備案情況,所以需要System.Timers.Timer。當(dāng)然如果是非常健壯的或者是完整的項(xiàng)目,建議用Quartz.NET,當(dāng)然可以選擇Topshelf、Hangfire、FluentScheduler等等。
2、因?yàn)樾枰樵兙W(wǎng)站的備案情況,獲取備案網(wǎng)頁(yè)的html,然后判斷html中是否含有“待售”字樣即可,如果沒(méi)有就說(shuō)明已經(jīng)備案了。 這時(shí)需要System.Net.WebClient。查詢網(wǎng)站.net下就更多了,最基礎(chǔ)的就是HttpWebRequst,HttpClient,或者用RestSharp,都是不錯(cuò)的選擇。
3、因?yàn)樾枰獙?shí)時(shí)通知情況,所以選擇了阿里云的短信通知,因?yàn)槠渌?xiàng)目用到,所以直接復(fù)制代碼來(lái)用。當(dāng)然也有很多通知,比如郵件,app,等等。當(dāng)然我們沒(méi)必要搞那么復(fù)雜。
四、代碼模塊
直接代碼,邏輯和代碼很簡(jiǎn)單。
class Program { static System.Timers.Timer timer = null; static void Main(string[] args) { timer = new System.Timers.Timer(2 * 60 * 1000); timer.Elapsed += Timer_Elapsed; ; timer.Start(); Console.ReadKey(); } private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { WebClient client = new WebClient { Encoding = System.Text.Encoding.GetEncoding("utf-8") }; var html = client.DownloadString("http://www.xxxx.com/xxxxx.html"); Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "......" + "未簽。"); if (html.IndexOf("待售") == -1) { if (timer != null) timer.Stop(); // 發(fā)送5條短信 for (int i = 0; i < 5; i++) { // 發(fā)送短信 SmsMessage.Send("152****7178", "SMS_92310001", new { name = "Emrys", status = "恭喜恭喜恭喜,房子已簽售!" }); Thread.Sleep(5 * 1000); } } } }
五、部署
好吧,這項(xiàng)沒(méi)啥以及意義,直接生成代碼,在bin目錄拷貝Debug文件夾直接扔到服務(wù)器,點(diǎn)擊運(yùn)行xxxxxxx.exe。部署完畢。^_^
六、總結(jié)
1、雖然當(dāng)時(shí)只是突發(fā)奇想,并沒(méi)有具體統(tǒng)計(jì)時(shí)間,拿起vs就是一頓突突。所有代碼和部署應(yīng)該不會(huì)超過(guò)5分鐘。 從這可以看出.Net在vs配合下在一些方面做的還是不錯(cuò)的。
2、現(xiàn)在.Net core開(kāi)源跨平臺(tái)以及運(yùn)行速度,C#“優(yōu)美的語(yǔ)言”,vs宇宙第一IDE,其他不多說(shuō),望.Net越來(lái)越好。
以上所述是小編給大家介紹的Asp.Net 5分鐘實(shí)現(xiàn)網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)我們網(wǎng)站的支持!
上一篇:asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明
欄 目:ASP編程
下一篇:C++ 中引用與指針的區(qū)別實(shí)例詳解
本文標(biāo)題:Asp.Net 5分鐘實(shí)現(xiàn)網(wǎng)頁(yè)實(shí)時(shí)監(jiān)控
本文地址:http://mengdiqiu.com.cn/a1/ASPbiancheng/11339.html
您可能感興趣的文章
- 01-11ASP實(shí)現(xiàn)加法驗(yàn)證碼
- 01-11ASP腳本組件實(shí)現(xiàn)服務(wù)器重啟
- 01-11ASP實(shí)現(xiàn)類似hashMap功能的類
- 01-11asp實(shí)現(xiàn)限制一個(gè)ip只能訪問(wèn)一次的方法
- 01-11ASP實(shí)現(xiàn)多行注釋的方法(dw)
- 01-11asp畫中畫廣告插入在每篇文章中的實(shí)現(xiàn)方法
- 01-11php實(shí)現(xiàn)微信企業(yè)號(hào)支付個(gè)人的方法詳解
- 01-11ASP 處理JSON數(shù)據(jù)的實(shí)現(xiàn)代碼
- 01-11用ASP實(shí)現(xiàn)在線壓縮與解壓縮功能代碼
- 01-11ASP是使用正則提取內(nèi)容里所有圖片路徑SRC的實(shí)現(xiàn)代碼


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-11ASP實(shí)現(xiàn)加法驗(yàn)證碼
- 01-11ASP新手必備的基礎(chǔ)知識(shí)
- 01-11ASP腳本組件實(shí)現(xiàn)服務(wù)器重啟
- 01-11asp服務(wù)器如何搭建
- 01-11ASP實(shí)現(xiàn)類似hashMap功能的類
- 01-11ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享
- 01-11解決ASP中http狀態(tài)跳轉(zhuǎn)返回錯(cuò)誤頁(yè)的問(wèn)
- 01-11ASP編碼必備的8條原則
- 01-11ASP中用select case代替其他語(yǔ)言中的sw
- 01-11ASP程序中常用的腳本語(yǔ)言
隨機(jī)閱讀
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開(kāi)原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10SublimeText編譯C開(kāi)發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改