@newaitix

Таймер file_get_contents php?

req_callback.php
$req=file_get_contents('http://555.555.5.5/file.php?phone='.$request_number);

555.555.5.5 может долго не отвечать, подвесить соединение, может быть не доступным.
есть файл callback.php который делает file_get_contents req_callback.php
Могу ли я в req_callback.php прописать условие которое оборвет выполнение скрипта через 5 сек чтоб callback.php смог получить ответ что все плохо и сервер 555.555.5.5 не отдал контент в течении 5 сек ?
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
mashletov
@mashletov
Math.random()
Первая ссылка в гугле.

$ctx = stream_context_create(array('http'=>
    array(
        'timeout' => 1200,  //1200 Seconds is 20 Minutes
    )
));

echo file_get_contents('http://example.com/', false, $ctx);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
OtshelnikFm
@OtshelnikFm
Обо мне расскажет yawncato.com
Комментировать
Stalker_RED
@Stalker_RED
Если данные не нужны прямо "здесь и сейчас", то можно
1. записать в табличку задания, по каким адресам нужно что-то скачать.
2. запускаем периодически менеджер, который проверяет есть ли незавершенные задания.
2.а если есть, запускаются воркеры, которые пишут в табличку свой PID и время когда они взяли задание в работу
2.б если менеджер видит, что времени прошло слишком много - он килляет воркер по PID и перезапускает.
2.в если воркер отработал нормально - сохраняет данные на диск, пишет время завершения. берет следущее задание, или завершает свою работу.

Если добавить еще немножко наворотов, то получится guzzle.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы