最终用户可以访问的脚本会进行以下调用:
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
}
}
}
测试不是重点,测试让我质疑以下内容:
PD:Coudl除了php之外没有想到任何标签,如果你想到一个请标记问题
答案 0 :(得分:0)
通过exec或URL调用命令不会改变可以同时运行的脚本数量。 服务器可以同时运行的脚本数量取决于它的内存以及许多其他因素。