1. Почему веб-страницы используются для мониторинга в реальном времени?
LZ недавно купил дом в Вуси. Несмотря на то, что она работает в Шанхае, цены на жилье в Шанхае слишком высоки и невыносимы, поэтому она выбрала Wuxi, что приемлемо, как место для поселения. Друзья, которые купили дом, могут знать процесс покупки дома. Одним из очень важных шагов в покупке дома является то, что он требует коммерческого жилья. Проще говоря, когда вы покупаете дом, вы можете проверить статус регистрации своего дома на веб -сайте правительственного коммерческого жилья. Если разработчик уже зарегистрировался и все еще продает этот дом, это должна быть распродажа с одной спальней. И очень важный момент заключается в том, что только путем подготовки к делу мы можем перейти к следующему банковскому кредиту. По мере того, как банковские проценты увеличиваются и выше, чем раньше регистрация, тем лучше кредит, тем лучше. Поэтому особенно важно знать статус подачи покупки вашего дома как можно быстрее.
Конечно, вы также можете проверять свой статус подачи на веб -сайте каждый день. Очевидно, что это не то, как программист, и не так, как программист .NET. Подход программиста состоит в том, чтобы честно уведомить программу на мобильный телефон после завершения регистрации. Кстати, я хотел бы жаловаться, что веб -сайт для подачи действительно медленно.
2. Выберите Service Windows, Form (Winform), Web или Console Program?
Конечно, наиболее подходящим является определенно служба Windows, Winform и Web, безусловно, в порядке. Консольная программа не обязательно является наиболее подходящей, но разработка определенно является самой быстрой. После всестороннего рассмотрения это был очень маленький проект мониторинга, и это заняло всего один или два месяца, или один или два дня, так что это было не так сложно. Кроме того, служба Windows должна была быть установлена на сервере. Самое главное, что консоль самая быстрая для разработки и легче всего развернуть, поэтому я наконец выбрал консольную программу.
3. Проанализируйте требования
1. Регистрационная ситуация должна быть проверена каждые несколько минут, так что System.Timers.Timer требуется. Конечно, если это очень надежный или полный проект, рекомендуется использовать Quartz.net. Конечно, вы можете выбрать Topshelf, Hangfire, Fluentscheduler и т. Д.
2. Поскольку вам необходимо проверить статус регистрации веб -сайта, получить HTML веб -страницы регистрации, а затем определить, содержит ли HTML слово «для продажи». Если нет, это означает, что регистрация была подана. System.net.webclient требуется. Есть больше поисковых веб -сайтов в .NET. Самыми основными являются httpwebrequest, httpclient или restsharp, которые являются хорошим выбором.
3. Поскольку требуется уведомление в реальном времени, было выбрано уведомление Alibaba Cloud SMS. Поскольку используются другие проекты, мы можем напрямую скопировать код для его использования. Конечно, есть также много уведомлений, таких как электронные письма, приложения и т. Д., Конечно, мы не должны быть такими сложными.
4. Кодовый модуль
Прямой код, логика и код просты.
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 (отправитель объекта, system.timers.elapsedeventargs e) {webclient client = new webclient {encoding = system.text.encoding.getencoding ("utf-8")}; var html = client.downloadstring ("http://www.xxxx.com/xxxx.html"); Console.writeline (datetime.now.tostring ("yyyy-mm-dd HH: MM: SS") + "..." + "не подписано."); if (html.indexof ("для продажи") == -1) {if (timer! = null) timer.stop (); // Отправить 5 текстовых сообщений для (int i = 0; i <5; i ++) {// отправить smsmessage.send ("152 **** 7178", "SMS_92310001", New {name = "Emrys", Status = "Поздравляю, поздравляю, дом был подписан на продажу!"}); Thread.sleep (5 * 1000); }}}}