WindowsサービスまたはWindowsタスクスケジューラ?


10

私は、データベースをクエリしていくつかの情報を(データベース内の別のテーブルに)保管するユーティリティーを作成することを計画しています。マルチスレッドユーティリティで、5分または10分ごとに実行する必要があるため、1日に3回実行される場合があります。

C#/ DotNetプログラミングでこれを実現する2つのオプションが表示されます。

  • 内部にタイマーアプローチを持つWindowsサービスを作成します。
  • コンソールプログラムとWindowsタスクスケジューラを使用してそれをスケジュールします。

あなたはどちらが好きですか、そしてなぜですか?


3
この質問はSOに適していると思います
Naveen

1
本当に、それは良いソフトウェア設計の質問であり、SOで質​​問すると、5時間以内に少なくとも5つの良い答えが得られるでしょう。
シャープトゥース

1
私は締めくくることに投票しました、これは実際にはSOに属しています
Jaco Pretorius

2
この質問は、どちらかのメリットについて主観的または拡張された議論を引き起こします。ここでは非常に話題になっていて、主観的で議論があります。

2
よくわかりませんが、最後の文「どちらが好きで、なぜですか」と思います。向こうのクローズボットをトリガーします。実際の答えはここにあるので、ここのほうが良い
TheLQ

回答:


2

この非常に同じトピックに関する昨日の私の同僚からのコメント

「これについては常にさまざまな意見があります。私の経験則では、5分ごとに実行するもの(および実行時間や実行にかかる時間)が必要な場合や、イベントに応答する場合は、サービスを使用します。毎日特定の時間に何かを実行する必要があり、重複がないことが確実な場合は、OSに付属のスケジューラを使用します。ハイブリッドが必要な場合は、両方を使用しますさまざまなケースに対応するソリューション、または既製品を見つける(おそらくQuartz .Net) "

Jon Gallowayの2005年の記事「// TODONT:Windowsサービスを使用して、スケジュールされたプロセスを実行する」 は良い読み物です。議論は今日まで続いており、いくつかの良い反論も提供しているので、コメントも読むことをお勧めします。

個人的に、私はこれについて私の同僚に同意します。できるだけ長くシンプルにしてください。また、Win2008サーバーに展開する場合は、タスクスケジューラと、標準スケジューラが提供するすべての機能を確認してください。私にとって、キラーはイベントが発生したときにスケジュールされたタスクを開始することでした。


4

サービスは、管理目的または複数のアプリケーションにサービスを提供するために使用されます。

スケジュールは、タスクを複数回実行するために使用され、追加の権限は必ずしも必要ありません。


3

私はWindowsスケジューラを使用することについての議論を聞いたことがありますが、常にアプリをサービスとして書き込むことを選択しました。最初は、クラスター化された環境ではより良いソリューションになると思いましたが、それは本当ではありません。一番下の行は、私はそれがより良いデザインのように「感じた」以外に正当な理由がなかったということです。


0

Quartz.netを試してみませんか?
一度使用したので、独自のスケジューラを作成するための強力なフレームワークであり、スケジュールされたジョブ(データベースまたはXMLファイルに保存されたもの)を実行する事前構築されたサービスを提供します) http://quartznet.sourceforge.net/


2
-1これは質問にまったく答えないので、コメントとしてふさわしいでしょう。
Tamara Wijsman、2009

0

ビルドせずにユーザーがより細かく制御できるようにするには、タスクスケジューラを使用します。Googleはアプリのアップデートでこれを行っているようです。ユーザーによっては、タスクの管理は難しくありません。ユーザーをループから外し、サービスを作成します。ほとんどの人はそれらに触れることはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.