服务器调用的PHP脚本是否异步运行


Does a server-called PHP script run asynchronously?

如果PHP脚本由服务器通过命令行调用(在Ubuntu服务器上),该脚本的多个实例可以同时运行吗?在我的例子中,它是一个PHP脚本,使用FFmpeg转换上传的视频。因此,如果8个用户同时(或非常接近)上传视频,该PHP脚本的8个实例是否会同时运行,还是会一个接一个地排队?如果它们排队,是否有办法改变它,使多个实例可以同时运行?

同一脚本的多个实例确实可以同时运行。需要注意的是,同时运行的脚本越多,性能就会降低。此外,您应该注意,如果您正在与数据库进行交互,并且您将LOCK表用于写入,则不能异步完成,并且会导致形成队列(尽管是较小的队列,取决于正在完成的操作)。

您可以通过创建一个PHP脚本来检查这一点,该脚本在其中某处调用exec()并执行另一个PHP脚本(或者实际上是同一个PHP脚本-但要注意不要创建无限循环)。也许可以向文件或数据库提供时间戳,以便您可以充分地看到它的发生。