WAMP и pcntl_fork - PullRequest
       23

WAMP и pcntl_fork

6 голосов
/ 02 февраля 2011

Есть ли способ заставить pcntl_fork работать в WAMP? Мне нужно разработать решение для разветвления и проверить его локально.

Ответы [ 3 ]

10 голосов
/ 02 февраля 2011

Нет, это невозможно. Для расширения PCNTL требуются * nix-платформы.

Теперь, с учетом сказанного, что вы пытаетесь сделать, и можете ли вы решить это без разветвления ...?

Редактировать: Некоторые альтернативы запуску фоновых процессов:

0 голосов
/ 23 февраля 2012

На это уже ответили, но я думал, что добавлю свой 2p.

Вы можете использовать pcntl-fork с php в windows, используя cygwin.

Это очень сложно установить, но если вы, как и я, просто хотите запустить скрипт php cli, это ваш лучший выбор.

Я получил инструкции от здесь :

0 голосов
/ 03 февраля 2011

решение с псевдокодом:

while (TRUE)
{
   $process_limit = get_process_limit();
   $process_count = get_process_count();

   if process count < process limit:
   {
      // get_row returns a row (as an array) from the DB that needs to be processed
      $row = get_row();
      if($row === array())
      {
         // Nothing to process; sleep
         sleep(2);
      }
      else
      {
         // Process row
         process_count(+1);
         process_row($row);
         process_count(-1);
      }

   }
   elseif process count === process limit
   {
      // Do not add to the process
      exit;
   }
   elseif process count > process limit
   {
      // Means the process limit was decreased
      // Terminate this process instance
      process_count(-1);
      exit;
   }
}
...