PHP shell exec дождаться завершения скрипта? [дубликат]
этот вопрос уже есть ответ здесь:
у меня есть php-скрипт, который запрашивает базу данных для списка заданий и запускает другие PHP-скрипты на основе того, что он находит в базе данных (в основном очередь процессов).
некоторые выполнение сценариев, выполняемых сценарием запуска очередей, может занять около 30 секунд (создание PDF-файлов, изменение размера изображений и т. д.).
проблема в том, что shell_exec()
в сценарии запуска очереди вызывает сценарии обработки, но затем не ждет их завершения, в результате чего очередь не будет завершена.
сценарий запуска очереди:
#!/usr/bin/php
<?php
// Loop through database and find jobs to be done
shell_exec(sprintf("/root/scripts/%s.php", $row['jobName']));
?>
работа скрипта:
#!/usr/bin/php
<?php
shell_exec("/usr/bin/htmldoc -t pdf --webpage test.html > test.pdf");
// Update database to mark job as completed
?>
запуск сценария задания непосредственно из командной строки и PDF создается.
есть идеи о том, как это исправить? Или лучший способ запустить очередь процессов?