Задать вопрос

Возможно паралельное выполнение php?

задача
1) получить время предыдущего запроса
2) сохранить время начала текущего запроса
3) выполнить запрос (2-10 секунд загрузка по http)

$id = 0
       $time = $this->cache->get('vk_obj_start_time'.$id);
        echo '<br>loaded_time'.$time. ' '. date('d.m.Y H:i:s',$time);
        $parameters = array(
            'q' => $this->search_word[$id],
            'count' => 100,
            'start_time'=> $time
        );
        echo '<br>now '.time();
        $this->cache->save('vk_obj_start_time'.$id, time(), 30000);
        return file_get_contents($url);;



вместо ожидаемого $time=0 ( в кеше он 0, заменял на сохранение в базе - тоже самое)
получется $time = текущему времени +-(1-2) секунды всегда по разному

время выполнения file_get_contents 2-10секунд
почему то сначала выполняется $this->cache->save а затем уже только $this->cache->get

функция не работает в цикле, проверял
убираешь file_get_contents все хорошо ( $time=0 в первый раз, во второй раз $time={время прошлого выполнения}
убираешь $this->cache->save все хорошо $time=0 всегда
  • Вопрос задан
  • 398 просмотров
Подписаться 5 Оценить Комментировать
Ответ пользователя justpusher К ответам на вопрос (3)
@justpusher
Советую добавить подробное логирование в файл в нескольких местах вашего кода. Логируйте microtime, process id, идентификатор текущего запроса и значения переменных. Это поможет вам разобраться, что происходит.

P.S. заголовок вопроса выбран крайне неудачно.
Ответ написан