Quartz.Net フレームワークで使用しています。すべてのジョブ (スレッド) には 1 つの Web リクエストしかありません
チェックリストは次のとおりです。
ブロックの使用では、すべての使い捨てオブジェクトが使用されます。
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) str = reader.ReadToEnd();
- ServicePointManager.Expect100Continue = false;
- ServicePointManager.DefaultConnectionLimit = 1000;
- ServicePointManager.MaxServicePoints = 1000;
- request.KeepAlive=false
- リクエスト。タイムアウト = 5000;
- request.ReadWriteTimeout = 5000;
- request.ServicePoint.ConnectionLeaseTimeout = 5000;
- request.ServicePoint.MaxIdleTime = 5000;
ストップウォッチを使用して Web リクエスト時間を測定しています。これらはそのログです:
異常な Web リクエスト時間: 16333 ミリ秒
異常な Web リクエスト時間: 8350 ミリ秒
異常な Web リクエスト時間: 9846 ミリ秒
異常な Web リクエスト時間: 7545 ミリ秒
異常な Web リクエスト時間: 6662 ミリ秒
異常な Web リクエスト時間: 18332 ミリ秒
何か案が?
PS: この質問は、 Timeout supported Multithreaded Web Requestの要約版です。