2011-12-25 11 views
0

私はサブスクリプションのデータベースを取得しました。1つのアプリケーション(.Net C#)でスケジュールされたタスク

しかし、すべてのサブスクリプションには独自の時刻があり、+ x分ごとにその機能を実行する必要があります。

同時に複数のサブスクリプションを実行できます。

多分、その特定の時刻から開始し、x分ごとに1つの特定の時刻に実行される予定のタスクのように見えるはずです。

私は自分が正しいことをしたいと思うことを願っています。私の英語は最高ではありません。

誰も私がアプリケーションを構築する方法を知っていますか?

答えて

1

あなたはQuartz.NETがあなたのために何をすることができるかとだけ説明しています。それをチェックして、それは時間を費やす価値があるかもしれません。

+0

Quartz.NETをテストしていますが、何か問題がある場合は、どうか考えてください。http://stackoverflow.com/questions/8639085/quartz-net-beta-throws-an-exception-when-i-try -testcode-in-own-project – RickardP

5

あなたはここでの選択肢のカップルを持っている:

  • は(もちろん、これはあなたがSQL Serverを使用していると仮定し)、必要なスケジュールとSQLエージェントとセットアップjobsを使用してください。
  • Windows Serviceには、データベースにクエリを実行し、必要に応じてさまざまなタスクを実行するタイマーを記述します。

あなたはscheduled tasksと言いましたが、それは別のオプションかもしれませんが、新しいタスクの設定と実行する実際のタスクを自動化する必要があります。これらの両方は、私が上に概説したオプションで行うのが簡単です。

2

これにはSystem.Threading.Timerを使用することをおすすめします。ジョブをスケジュールするには、次の手順を実行します。

new Timer(_ => DoTheJob()).Change(your_interval_in_milliseconds, Timeout.Infinite); 

その後、ジョブが実行されたときに、同じコードを使用して次の実行をスケジュールします。これにより、同じジョブの2つのインスタンスを同時に実行することができなくなります。 あなたの質問に適切に答えることができない場合は、教えてください。

0

なので、何らかのスケジューラを書く必要があります。キューからタスクを取り出して実行するスケジューラを作成すると、たとえばすべてのタスクが別のスレッドで実行され、パフォーマンスが大幅に向上します。

関連する問題