async/await パターンで同時アクセス数を制御する

http://stackoverflow.com/questions/10806951/how-to-limit-the-amount-of-concurrent-async-i-o-operations

http://blogs.msdn.com/b/pfxteam/archive/2012/02/29/10274035.aspx

http経由で大量のデータ取得アクセスをしないといけないような状況で、 async/await を何も考えずに使ったら数万件同時にtcpセッション開始してエラーになってしまった。

SemaphoreSlim を使って同時実行数を制限するようなサンプルが役に立った。セマフォで待たされる所も Async でスレッド制御を戻せるのが素敵。
でもTaskをすべて抱えるサンプルコードなので、さらに桁が多い状況ではちゃんと考えないといけない。だいたい10万件ぐらいが対象の時に役に立つパターン。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。