2012-04-26 8 views
2

私たちはいくつかのタイマーを持つWindowsサービスを実装しました。時間が経つと、タイマーのロジックはますます複雑になりました。私たちのソリューションと1つの可能な方法をリファクタリングするための時間は、私たちの要件を処理する十分に文書化されたフレームワークを使用することです。定期的なタスクを処理するためのフレームワーク

のようなルールがあります。

  • 開始タイマA午前9時

  • 開始タイマBタイマAは、他のタイマーを開始いけない開始された場合には、各2分

  • で毎日

  • タイマーCとDは同時に実行できません

私はリストの最初の2つの要件を持っていたので、Quartz.netを見ましたが、並行性ルールは処理されません。

フレームワークはありますか?

+0

答えはありませんが、Quartz.NETはかなり良いです。並行処理ルールを自分で実装するのはかなり簡単です。 –

+0

Quartzに関する私の好きなことは、私が慣れ親しんでいるタイミングをcrontab形式で記述できることです。 –

答えて

2

私は同様の要件を持っていました:本質的に必要なのはステートマシンです。これは簡単にディスクやデータベースにシリアル化することができ、簡単に階層的な状態を使用して状態マシンを指定する何らかの方法、 の後に、すべて,)と、状態マシンを現在の時刻に基づいて状態を前進させるためにメモリにロードする方法を容易に知る何らかの方法。

最終的に私の要求に合ったもの、特に一時的なイベントやシリアル化の要件を見つけられなかったので、自分のステートマシンを書きました。ソースコードはNuget Packageにあります。ブログのエントリhere。フィードバック歓迎。

関連する問題