2009-05-08 6 views
2

私はこれが主に意見であることを知っていますが、あなたが興味を持っているなら興味があります。私は1分に1回実行する必要があるEXEを持っています。スケジュールされたEXEまたはWindowsサービスとして実行する必要がありますか?

重複How reliable is windows task scheduler for scheduling code to run repeatedly?

+0

私はサービスを書くことになった。それは困難ではなく、より安定して信頼できるようです。 – Deane

答えて

5

私はこのような多くのプログラムを持っていると私は、スケジューラとサービスとしてそれらのすべてを実行します。利点は、ユーザーがログオンしていなくても実行できることです。プラス私は停止/リモートで開始することができます。

+0

http://www.opensymphony.com/quartz/は素晴らしい.Netスケジューラライブラリです。 –

+0

しかし、Windowsのタスクスケジューラ、または自分のシステムですか? – Mark

+0

@マーク:それは私自身のシステムです。サービスを開始し、設定ファイルからスケジューリング情報を読み込みます。スケジューリング情報は、時刻とヒットしたときにアセンブリとメソッドを取得します。 –

0

私は1つの同様のシナリオを持っていた:それは一度(ユーザーがログインした後に)特定のアプリケーションの実行中にのみ実行するために必要な明示的なユーザーの資格情報を持つ分を、実行するために必要なレガシーEXE、だった

、および"昨日"する必要があった。

したがって、スケジュールされたタスクを使用して実行する組み込みのメカニズムを使用するだけで十分でした。新しいコードを書く必要はなく、本当に必要な場合以外は実行しません。

私は通常、むしろServiceのアプローチを使用します。

0

サービスとして実行するCPUの使用量は、スケジュールされたサービスよりも少なくなります(問題ではありません)。しかし、私は奉仕するつもりです。

0

複数のユーザーがスタンドアロンで実行することができれば、おそらくタスクスケジューラによって制御するのが最適です。ソースコードをお持ちでない場合は、タスクスケジューラの機能を果たすラッパーを書くことはあまりありません。スケジュールされたタスクだけが失敗した唯一の時間は、不安定なネットワークを走っているときです(ラップトップで実行する場合は「AC電源オン」オプションをオフにしてください)。

しかし、再コンパイルしてサービスのように見える(信頼できる、失敗したときに復旧する必要がある、広く展開されるなど)場合は、それを1つとして再作成することができます。より効率的であることに加えて、ステータスを報告し、要求の開始/停止に賢明に応答し、インテリジェントタイミングを追加することができます。

関連する問題