我的服务器可以同时运行多少个PHP脚本?

时间:2014-05-24 02:24:22

标签: php

最终用户可以访问的脚本会进行以下调用:

exec("php orderWatcher.php $insertedId > /dev/null &");

在orderWatcher.php中,我做了一些需要很长时间的操作:

 if (checkSomeStuff) {
     sleep(60);
 }
 makeOtherStuff();

我知道我可以运行尽可能多的php脚本作为用户请求它们,但我不确定当我进行exec()调用时是否仍然如此,因为(根据我的理解)这执行了shell like命令在系统中。

此外,如果我执行测试(这些测试已被修改以使它们与问题相关,它们实际上有更多的意义):

class OrderPlacerResultOrders extends UnitTestCase {

    function testSimple() {
        exec("php orderWatcher.php $insertedId > /dev/null &");
        // Wait for exec to finish
        sleep(65);
        $this->assertTrue(orderWatcherWorked(1));
        // No problem here

     }

     function testComplex() {
        for($i = 0; $i < 100; ++$i) {
             exec("php orderWatcher.php $insertedId > /dev/null &");
        }
        // Wait a really long time
        sleep(1000);
        for($i = 0; $i < 100; ++$i) {
        $this->assertTrue(orderWatcherWorked(i));
        // Failure arround the 17th case
        }


     }

}

测试不是重点,测试让我质疑以下内容:

  1. 服务器可以制作和处理多少个对php脚本的exec调用?
  2. 如果数量有限,那么两个脚本实例正在请求exec(因为两个不同的Web用户调用执行exec调用的脚本)会产生差异吗?或者它与在同一个脚本中调用相同(如在测试中一样)?
  3. PD:Coudl除了php之外没有想到任何标签,如果你想到一个请标记问题

1 个答案:

答案 0 :(得分:0)

通过exec或URL调用命令不会改变可以同时运行的脚本数量。 服务器可以同时运行的脚本数量取决于它的内存以及许多其他因素。