0

インターネットからのさまざまなデータ フィードに依存する Web アプリの一部として、ネット上のさまざまな場所からデータを取得し、Web アプリで利用できるようにするコンポーネントを作成する必要があります。フェッチするリソースのリストと、リソースごとに異なるタイミングがあります。たとえば、1 時間ごとに RSS フィードを取得し、30 分ごとに特定の REST API を呼び出す必要があります。

私はすでに取得部分を実装しています。私は現在、スケジューリング部分を実装する方法をさまよっています。

Windows のスケジュールされたタスクまたは Windows サービスを使用できることを知っており、このトピックに関する回答を読みましたが、それらは一般的に話しています。私の特定のケースに何が最も適していると思いますか。(他のオプションも歓迎します) また、ソリューションをどのように実装することをお勧めしますか?

ありがとう

4

2 に答える 2

1

Quartz.Netを試してください。

于 2012-04-16T16:09:53.040 に答える
0

同様のケースでよく見られる間違いは、すべてを同じ Web アプリケーションの一部にしようとすることです。「さまざまな場所」から引き出された「データ」がフラットで単純であるため、ファイルシステムまたはデータベースに保存できると仮定します(メモリ内に存在する必要があるような性質のものであるとは対照的です-たとえば、オブジェクトの複雑な相互接続グラフ)、「クローラー」を別のプロセスにします。

さて、そのプロセスが Windows タスク スケジューラによってアクティブ化される単純なコマンド ラインであるか、Quartz.Net などによってアクティブ化される Windows サービスであるかは、起動するたびに初期化する必要があるものの量と必要な頻度に大きく依存します。目を覚ます。極端に言えば、1 日に 1 回実行する場合は、コマンド ライン アプリにします。5 秒ごとに実行され、起動とすべてのコードの JIT に 3 秒かかる場合は、Windows サービスにします。ユーザーによってアクティブ化される必要があり、その反応時間が瞬時である必要がある場合は、再度 Windows サービスにします。

いつでもコマンド ラインから始めて、必要に応じてサービスに移行できます。多くの再実装を行う必要はありません。また、処理とスケジューリングの部分を分けておくと、アーキテクチャがよりシンプルになります。これがコマンド ラインのアプローチです。あなたに力を。

于 2012-04-16T17:12:18.123 に答える