1. Por que as páginas da web são usadas para monitoramento em tempo real?
LZ comprou recentemente uma casa em Wuxi. Embora ela trabalhe em Xangai, os preços da habitação em Xangai são muito altos e insuportáveis, então ela escolheu Wuxi, o que é aceitável, como um lugar para se estabelecer. Amigos que compraram uma casa podem conhecer o processo de compra de uma casa. Uma etapa muito importante para comprar uma casa é que ela requer arquivamento de moradias comerciais. Para simplificar, quando você compra uma casa, pode verificar o status de registro de sua casa no site de arquivamento de moradias comerciais do governo. Se o desenvolvedor já se registrou e ainda está vendendo esta casa, deve ser uma venda de um quarto. E um ponto muito importante é que apenas ao se preparar para o caso, podemos prosseguir para o próximo empréstimo bancário. À medida que os juros bancários estão cada vez mais altos, quanto mais cedo o registro, melhor será o empréstimo, melhor será. Portanto, é particularmente importante conhecer o status de arquivamento da compra da sua casa o mais rápido possível.
Obviamente, você também pode verificar seu status de arquivamento no site todos os dias. Obviamente, não é assim que um programador é, nem é assim que um programador .NET é. A abordagem do programador é notificar honestamente o programa no telefone celular assim que o registro for concluído. A propósito, gostaria de reclamar que o site para arquivar é muito lento.
2. Escolha o serviço Windows, formulário (WinForm), Web ou programa de console?
Obviamente, o mais adequado é definitivamente o serviço Windows, Winform e Web está definitivamente ok. O programa de console não é necessariamente o mais adequado, mas o desenvolvimento é definitivamente o mais rápido. Após uma consideração abrangente, foi um projeto de monitoramento muito pequeno e levou apenas um ou dois meses ou um ou dois dias, por isso não foi tão complicado. Além disso, o serviço do Windows também precisa ser instalado no servidor. O mais importante é que o console é o mais rápido de se desenvolver e o mais fácil de implantar, então finalmente escolhi o programa de console.
3. Analise os requisitos
1. A situação de arquivamento precisa ser verificada a cada poucos minutos; portanto, é necessário system.timers.timer. Obviamente, se for um projeto muito robusto ou completo, é recomendável usar o quartz.net. Obviamente, você pode escolher Topshelf, Hangfire, Fluentscheduler, etc.
2. Como você precisa verificar o status de registro do site, obtenha o HTML da página da Web de registro e determine se o HTML contém a palavra "à venda". Caso contrário, significa que o registro foi arquivado. System.net.webclient é necessário. Existem mais sites de pesquisa no .NET. Os mais básicos são httpwebrequest, httpclient ou RestSharp, que são todas as boas escolhas.
3. Como as notificações em tempo real são necessárias, a notificação SMS da Alibaba Cloud foi selecionada. Como outros projetos são usados, eles podem copiar diretamente o código para usá -lo. Obviamente, também existem muitas notificações, como e -mails, aplicativos, etc. É claro que não precisamos ser tão complicados.
4. Módulo de código
Código direto, lógica e código são simples.
classe Program {static System.timers.timer timer = null; estático void main (string [] args) {timer = new System.timers.timer (2 * 60 * 1000); timer.Elapsed += timer_elapsed; ; timer.start (); Console.readKey (); } private estático void timer_elapsed (remetente de objeto, System.timers.ELAPSEDEVENTARGS E) {WebClient client = new webclient {coding = System.text.encoding.getEncoding ("utf-8")}; var html = client.DownloadString ("http://www.xxxx.com/xxxx.html"); Console.WriteLine (DATETime.now.toString ("AA YYYY-MM-DD HH: MM: SS") + "..." + "não assinado."); if (html.indexof ("para venda") == -1) {if (timer! = null) timer.stop (); // Envie 5 mensagens de texto para (int i = 0; i <5; i ++) {// envie smsmessage.send ("152 **** 7178", "SMS_92310001", novo {name = "emrys", status = "Parabéns, parabéns, a casa foi assinada por venda!" Thread.sleep (5 * 1000); }}}}