PHP curl get headers не работает для задания cron для более чем 300 записей - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть работа cron, которая сканирует URL-адреса, чтобы увидеть, находятся ли они в сети или нет.Моя проблема в том, что он никогда не завершает 844 веб-сайтов.Он будет варьироваться от 260 до чуть более 300.

Задание cron вызывает этот файл PHP каждые 30 минут, но он никогда не завершает мой полный список.Есть ли что-то, что я не делаю правильно, чтобы препятствовать тому, чтобы цикл завершил задачу?

// php file
//first part gets the csv file and reads the 844 sites

if (($handle = fopen("/public/csvs/" . $csv, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
        $num = count($data);

        for ($c = 0; $c < $num; $c++) {

           $site = $data[$c];

                   $curl = curl_init();
                    curl_setopt_array( $curl, array(
                        CURLOPT_HEADER => true,
                        CURLOPT_NOBODY => true,
                        CURLOPT_RETURNTRANSFER => true,
                        CURLOPT_URL => 'https://'.$site ) );
                    $headers = explode( "\n", curl_exec( $curl ) );
                    curl_close( $curl );

                     // gets the status of the URL then 
                     fills it in the database.

                    $statushttp = $headers[0];



                    $mysqltime = date("Y-m-d H:i:s", $phptime);


                        //$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                        //$sql = $conn->prepare($sql);
                        $sql = "INSERT INTO csv (http_status,status,url,csv,related)
                     VALUES ('$statushttp','$status','$site','$csv',1)";

                        // use exec() because no results are returned

                        $conn->exec($sql);
                        //echo $site ." ".$statushttp."<br>";
                        //echo $statusCode."<br>";



        }

    }

}

1 Ответ

0 голосов
/ 28 января 2019

Пробовал это на другом сервере, и это работало без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...