2

サーバー上で実行され、特定の時間にコマンドを実行するように構成できるアプリケーションを作成する必要があります。たとえば、ユーザーがエンゲージ時間とディスエンゲージ時間を設定できる Web インターフェイスがあります。これらの値がユーザーによって保存されたら、サーバーが毎日指定された時刻に正確にこれらのコマンドを起動できるようにする必要があります。

また、発生する単回使用の非反復イベントを設定できるようにする必要もあります...イベントがトリガーされてから 10 分後に、その 10 分のタイマーがオフになったときにコマンドが起動されるようにする必要があります。

エンゲージ コマンドとディスエンゲージ コマンドが公開されたクラス ライブラリを既に作成しています。これを最終的なソリューションに統合し、クラスを直接呼び出すことができるようにしたいと考えています。または、クラス ライブラリを実行可能ファイルにコンパイルし、コマンド ライン経由でコマンドを発行することもできます。私は後者をする必要がないことを望んでいます。

私は今までこのようなことを書いたことがありません。私は Windows サービスを少し覗いてみましたが、それが必ずしも最良のオプションであるとは限らないという多くのおしゃべりがあります。誰かが私を正しい方向に導いてくれますか?

4

2 に答える 2

2

Windows サービスは悪い考えではなく、この種のアプリケーションに最適です。コマンドのトリガーとして標準の Windows のスケジュールされたタスクを使用しない限り、スケジューラを含めるために常に実行されている何らかのプロセスが必要です。これには、Windows サービスが最適な候補です。

Windows サービスを Quartz.NET およびある種の永続化レイヤーと組み合わせて使用​​して、スケジュールを保存できるようにする (サービスを再起動する必要がある場合やサービスがクラッシュした場合など) のが良い方法です。

または、Windows のスケジュールされたタスクを追加および削除するだけのアプリケーションを作成することもできますが、既存のクラス ライブラリがあることを考えると、Quartz.NET を使用すると既存のライブラリにうまく適合します。

于 2013-06-07T01:30:15.010 に答える
1

最も簡単な解決策:

コンソール exe を作成し、Windows でスケジュールされたタスクの下で実行します。

Web ページがユーザー入力を受け入れ、構成ファイルを変更できるようにします。

于 2013-06-07T01:52:36.543 に答える