Есть ли PHP Control, как Bash?
-
27-09-2019 - |
Вопрос
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.