2015-03-02 3 views
-1

я пытаюсь переписать свой код для поддержки многопоточности, это простой код, но я не могу понять, как сделать это, в основном, что это сделатькак я могу сделать многопоточность в PHP

  1. запрос первая веб-страница с curl -> для получения уникального идентификатора
  2. используйте уникальный идентификатор для запроса другой страницы -> для получения сеанса
  3. используйте сеанс для запроса другой страницы ---> sleep(), затем выполните он снова

сейчас это то, Свинец сделать, но я хочу, чтобы создать много нитей в то же время

то, что я сделал есть, создать 3 Sperate файлы

первым создать 10 сеансов и сохранить их в текстовом файле с другими параметрами (сессии1 | unique_id1 | paramter1 | anotherparameter1)

второй файл содержит этот код

$sessions = file('sessions.txt'); 
$WshShell = new COM("WScript.Shell"); 
foreach($sessions as $kk => $session) { 
    if (!empty($session)) { 

    $oExec = $WshShell - > Run("php requests.php $kk", 0, false); 
    } 

} 

это открыть текстовый файл, и Еогеасп линия его открыть запрашивает файл с номером строки в ARGV

и в третьем файле, это взять номер строки, и откройте файл сеансов, извлечь в В параметре сеанса и отправка запросов с этой сессией

так это то, как я сделал мою многопоточность, но я чувствую, Я написал php-код с камнями теперь я хочу переписать его, не открывая 10 sperate php-процесс

+1

http://php.net/manual/en/intro.pthreads.php - PThreads - это расширение, которое добавляет потоки к PHP. Я лично просто развивал процессы. – kainaw

+0

спасибо за ответы, вы можете хотя бы помочь мне многопоточность после того, как я получу сеансы, я имею в виду, что я хочу открыть все сеансы одновременно с помощью curl , я не мог понять, как работает curl_multi:/ – javodri

+0

Во-первых, вам нужно для установки расширения pthreads. Нет смысла писать код для pthreads, если у вас нет установленного расширения. Ссылка, которую я предоставил, показывает вам, как ее установить и как создавать потоки. – kainaw

ответ

-1

На самом деле не существует собственного способа делать потоки в PHP. Подход, который вы предприняли, работает, но я бы поступил иначе. В PHP можно обрабатывать процессы. Это я сделал и хорошо работает.

Один из подходов заключается в использовании некоторой системы обмена сообщениями, такой как RabbitMQ, и распределении работы таким образом. В основном это актер или модель подкачки.

Другой подход, который может хорошо работать для вас, будет «pthreads». http://php.net/manual/en/book.pthreads.php

Я не пробовал этот метод самостоятельно, поэтому я не могу дать вам подробную информацию о том, как хорошо он работает или не работает.

Надеюсь, это поможет!

Смежные вопросы