2009-05-23 17 views
4

リモートWindowsサーバーで24時間365日実行されるバックグラウンドプロセスを実装する必要があります。私の開発環境はC#/ ASP.NET 3.5です。適切な時間に従業員や顧客へリモートウィンドウサーバーでプロセスを実行する方法

  • 送信リマインダー電子メール(たとえば仕事前日の午後5時を予定されている)
  • クエリと従業員のGPS座標を保存:プロセスの目的であるに彼らが職場に就いていないときに、私は後で彼らの位置がどこにあるのかを確認できるようになります。

プロセスが失敗した場合(特に更新が追加された場合)、このプロセスが失敗した場合、非常に重大な問題が発生するため、直ちに(または数分以内に)再起動する必要があります。通知を送信したり、GPS座標を記録したり、実行するために意図された他のタスクを記録することができます。

答えて

8
  1. プロセスをWindowsサービスとして実装します。 がWindowsサービスをコードする方法の簡単な例は .Net http://www.developer.com/net/csharp/article.php/2173801を参照してください。 サービスがservices.mscとでサービス に 「回復」タブを介してこれを設定する失敗する何が起こるかを制御するに

  2. 。あなたは は(http://msdn.microsoft.com/en-us/library/ms952401.aspxを参照)単一 サーバー障害を緩和するためのサーバークラスタのセットアップに見えるかもしれませんhiglyクリティカルな動作のために

  3. (下の画像を参照)。私の経験で

alt text

5

Windowsサービスが必要です。 Windowsサービスでは、非視覚反復操作を実行できます。

+0

サービスを自動的に再起動する方法を教えてください。 – DOK

1

サービスと同様に、クラスター上で実行し、サービスをクラスター管理ソフトウェアに知らせることができます。

2

もう1つの方法は、通常のアプリケーションを作成してスケジュールに従って実行する方法です。アプリケーションは、GPS座標を記録し、レポートを送信する頻度に応じて、1日に特定の時間に実行されてアクションを実行します。サービスが常時稼働のアプリケーションに限定されていると想定されるため、サービスを常に実行する必要がない場合は、通常は推奨される方法です。

1

定期的にタスクを実行するために、Windowsサービス(Windowsではサーバープログラミング)を作成したり、スケジューラを使用したりすることができます。

高可用性の要件に応じて、プログラムは、他のサーバー(パッシブノード)が起動し、最初の(アクティブノード)が停止した場合にホットバックアップとして静かに待機するフェールオーバークラスターにインストールできます。これは広い話題です。 WikipediaでHigh availablityから始めましょう。

1

あなたが何かの24時間365日を実行する必要がある場合は、あなたのサービス(複数可)が正しく実行されていることを確認するために、(1以上)のウォッチドッグプロセスを持っている必要があります。通常のサービスフレームワークに頼るだけでは、たとえ実行中であってもプログラムが正しく動作することを保証することはできません。ウォッチドッグプログラム(これもサービスである)は、サービスを自動的に照会することができる。メッセージを投稿して応答時間をチェックしたり、統計情報を照会したりすることができます。問題を検出したときにサービスを再開することができます(またはその他のフェールリカバリを行います)。

ユーザーのクエリに頼るのではなく、エラーを検出するには、自動的に行うことができます。これは、積極的な検出を可能にするため、これが好ましい方法です。

関連する問題