これは特定のコーディングに関する質問ではありませんが、ファイブ ナインの通信ソフトウェア開発で長年の経験を持ち、Web アプリの世界に足を踏み入れたばかりの初心者へのベスト プラクティスのアドバイスです。
複数の組み込み (Arduino) デバイスからデータを収集する ASP.NET Web アプリケーションがあります。デバイスは、単純な HTTP GET 要求を介して定期的にデータをプッシュします。通常の状態では、各デバイスは 30 秒ごとに 1 回データをプッシュします。ただし、デバイスが失われたり、デバイスからサーバーへの接続が失われたりする可能性があります。2 ~ 3 回の通常のデータ レポート サイクル内でこの状態を検出する必要があります。
典型的なスタンドアロン C# アプリケーションの場合、有効期限が最大タイムアウト期間に設定されたデバイスからデータを受信するたびに、タイマーを開始します。タイマーの期限が切れた場合、これは、デバイスからの応答が長すぎることを意味し、アプリケーションからアラート (電子メールなど) をトリガーする必要があります。
したがって、非アクティブ タイマーのアプローチは、永続的ではない接続を使用するスタンドアロンの常時接続アプリケーションでは非常に一般的なようです。しかし、ASP.NET Web アプリでこれを行う正しい方法は何でしょうか? この種のタイマーを HTTP 要求ハンドラーの外部で実行することはできますか?
私は考えられる解決策を探しましたが、人々はブラウザ セッションのタイムアウトなどについてより多くの質問をしているようです。私の問題は、次の点で異なります。
- セッション状態の追跡ができない非常に軽量なクライアントがあります
- アラームがあるまでシステムと対話していないユーザーに警告/警告するために、非アクティブをタイムリーに検出する必要があります
知恵を分けていただきありがとうございます。