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 件のコメント:
コメントを投稿