Вопрос

PHP поддерживает что-то вроде амперсанда в Bash (Forking)? Допустим, я хотел использовать Curl на 2 веб-страницах одновременно, поэтому скрипт не должен ждать до первой команды Curl FINNISHES, как можно добиться того, что в PHP? Что-то вроде этого в Bash:

 curl www.google.com &
 curl www.yahoo.com &
 wait
Это было полезно?

Решение

PHP поддерживает что-то вроде амперсанда в Bash (Forking)?
Нет. Смотрите другие ответы, хотя я делаю указываю, что расширение PCNTL только Unix.

... Как можно добиться того, что в PHP? *
Curl поддерживает выполнение нескольких загрузок одновременно.

Другие советы

Вы можете использовать popen или proc_open открыть процесс и позволить ему работать на заднем плане, но нет языковой поддержки для фоновых операций, как есть для bash (который был сделан для запуска задач, в любом случае; PHP был сделан для сценариев).

Использование proc_open, вы можете использовать proc_get_status знать, когда процессы прекращаются. Боюсь, нет wait эквивалент.

Вы можете написать асинхронные методы, если вы действительно хотите, но это много работы, и, возможно, ужасная идея дизайна, если вы используете PHP.

Некоторые виды механизма очередей часто предпочтительнее. Gearman - это механизм с открытым исходным кодом, который вы можете использовать. У меня также есть сообщение в блоге в очереди задания Zend Server, которая говорит о беговых задачах асинхронно Вы в очереди? Введение в очередь задания Zend Server.

Вы также можете использовать что-то вроде классов ожиданий Zend Framework для реализации некоторых асинхронных работ. Zend_Queue.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top