2011/03/03

Coro::LWPのリクエスト数をCoro::SemaphoreSetで管理

Coro::LWP

use Coro::LWPをするとLWPの諸々が勝手に上書きされるので非同期リクエストが可能になる

Coro::SemaphoreSet

Coro::SemaphoreSetで同時接続数の管理を行えば、相手のサーバから怒られたりしないし、自分のリソース管理も楽になるでしょう。

scheduleについて

join呼んだ方がいいのかは知らないけど、scheduleでやってみたかった
joinを使う場合はこんな感じ.

my @coros;
for ( 1 .. 10 ) {
    push @coros, async { ... };
}
$_->join for @coros;

scheduleを実行した場合、main threadに制御が帰ってこないので、semaphoreの値をチェックして、$Coro::main->readyでmain threadに戻してあげる必要があった

サンプルコード

0 件のコメント:

コメントを投稿