<分区>
我有一个 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。
关于如何解决这个问题的任何想法?还是运行进程队列的更好方法?