cUrlで、スタックオーバーフロー?

2013/05/16

cUrlで下記のようエラーがでてきた。

Warning: curl_getinfo(): xx is not a valid cURL handle resource in xxxxxxx

やろうとしていること

1000以上のURLを元にサイトが生きてるかどうか(ステータスコードの取得)をチェックしたい。

普通にやると時間がかかるので非同期処理の案として「curl_multi」を使うことにした。
だけど「1000以上のURLをセットするのどうなの?」という素人的な疑問を持ち下記のようにした。

1.「1000以上のURL」を「25件」でワンセットにする。
2.ワンセットにした「25件のURL」をcurl_multiへ。
3.「2」をループ。
※つまり「25件ずつチェックする」ってコトだな。

すると冒頭の「Warning」がでてきた。

・「curl_multi_remove_handle」や「curl_multi_close」もしてるけどダメっぽい。
・メモリリークを疑ってみたけど違うっぽい。
・とりあえず「unset()」もしてみたけどダメ。

調べると「スタックオーバーフロー」というワードが出てきた。

しょうがないので「1」の「25件ワンセット」を「5件ワンセット」にして再実行。
すると「Warning」がでてこなくなった。

5件ずつなので非同期のメリットが少ない。
とはいえ、普通に1件ずつ取得するよりは早いので良しとする。

新着(ニュース関連以外)

2017-08-03
formのinputでmaxlengthを使うとFirefoxでバグってた。他のブラウザでも気づかずにバグってたかもしれない。
2017-07-19
折れ線グラフをもう少しゆるやかに・・・というか何というか・・・調べていくと「移動平均」っていう言葉にたどり着いた
2017-07-10
FuelPHPの1.8をダウンロードして使っていたらセッションが使えないということに気付いた。
2017-06-27
MACにWin10をインストールしてみた:再挑戦。
2017-06-25
「簡単」っていうヤツらが多いけど・・・難しいぞ。