2

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

次のような規則があります。

  • 毎日午前 9 時にタイマー A を開始する

  • 2分ごとにタイマーBをスタート

  • タイマー A が開始されている場合は、他のタイマーを開始しないでください

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

リストの最初の 2 つの要件があったため、Quartz.net を調べましたが、同時実行ルールを処理していません。

私が見ることができるフレームワークはありますか?

4

1 に答える 1

2

同様の要件がありました: 基本的に必要なのは、ディスクまたはデータベースに簡単にシリアル化できるステート マシン、階層状態を使用してステート マシンを簡単に指定する方法、一時的なイベント ( AfterEveryAt )を簡単に指定する方法です。また、現在の時間に基づいて状態を進めるために、状態マシンをメモリにロードし直すタイミングを簡単に知る方法もあります。

最終的に、自分の要件、特に一時的なイベントとシリアライゼーションの要件を満たすものが見つからなかったため、独自のステート マシンを作成しました。Nuget Packageでソース コードを取得できます。ブログエントリーはこちら. フィードバック歓迎。

于 2012-04-26T09:39:05.930 に答える