如果服务器通过命令行(在Ubuntu服务器上)调用PHP脚本,那么该脚本的多个实例是否可以同时运行?在我的例子中,它是一个PHP脚本,使用FFmpeg转换上传的视频。因此,如果八个用户同时(或非常接近)上传视频,那么该PHP脚本的八个实例会同时运行,还是会一个接一个地排队?如果他们排队,有没有办法改变它,以便多个实例可以同时运行?
答案 0 :(得分:5)
同一脚本的多个实例确实可以同时运行。需要注意的是,性能会降低同时运行的脚本数量。此外,您应该注意,如果您正在与数据库进行交互,并且LOCK
用于写入的表,则无法异步完成并将导致形成队列(尽管是次要的,取决于操作正在做的事情。)
<强>证明强>
您可以通过创建一个在其中某处调用exec()
并执行另一个PHP脚本的PHP脚本来检查这一点(或者确实是同一个脚本 - 但要注意不要创建无限循环)。也许将时间戳吐出到文件或数据库,以便您可以充分地看到它发生。