2016-06-21 18 views
2

Web APIコントローラに5分ごとにリクエストを送信するWindowsサービスがあります。 Web APIはアプリケーションAからデータを取り出して処理し、アプリケーションBに入れます。基本的には5分ごとに新しいレコードと更新されたレコードが検索されます。レコードのタイプが異なり、間隔は変化の頻度。各レコードにはModified_Date列があります。この列は、Aからデータを取得するために使用されます。Windowsサービスがリクエストを発行するために使用するテーブルがあります。このテーブルは、各レコードタイプの最後のmodified_dateを格納します。したがって、各リクエストで1000レコードを取得します。これらの1000レコードの最大日付を取得し、次のリクエストでデータベースに保存します。この日付を使用します。Web APIリクエストが完了しているかどうかを確認

ここで私の問題は、ネットワーク速度と最初の要求がまだ実行されている間に5分が経過するかもしれない取得されたレコードの数によって異なることがあります。最初のリクエストが始まる前に2番目のリクエストを開始したくありません。

最初のリクエストが完了したらどうすればよいですか?

+2

リクエストは5分ごとに発生します。アプリケーションAが必要とする処理が、アプリケーションBのデータを5分かかると予想していますか? –

+0

アプリケーションAのデータ取得に何か問題があります。データベースおよび/またはクエリの設計が不適切であると思われます。単純に数千のレコードを取得するクエリは、5分近くの場所では使用できません。私はあなたのデータベースと質問の詳細を記したデータベース質問を投稿して、それがなぜそれほど長くかかるのか理解するのを助けることをお勧めします。 –

+0

@ ext0はい、私はそれが月の時間に応じて毎分350000を超えて生成するので、それは長い時間かかると思う場合もあります。 – Munhu

答えて

2

以前の要求が完了したかどうかをチェックするフラグを保持するシングルトンサービスを作成できます。要求は、開始時にフラグを設定し、終了時にフラグを解放します。

関連する問題