PHP Apache增加每个客户端的最大并发连接数

时间:2012-08-30 13:40:26

标签: php apache powershell concurrency xampp

我想使用XAMPP同时运行数十个长时间运行的PHP脚本。每个脚本运行超过2个小时,不使用会话,cookie等。

对于我的第一次测试运行,我尝试在我的浏览器上打开其中的10个脚本,但只有我打开的前六个实际开始执行(我知道这是因为在每个脚本的开头,我立即打开一个文件在那里写入状态更新 - 除了前6个脚本之外,没有任何内容可以写入。

我可以在每个脚本的顶部放置一些代码,或者我可以更改的某些PHP设置,或者我可以使用的任何其他方式,以便我可以同时运行尽可能多的PHP脚本吗?


编辑以下是完成此操作的方法:

1)从此处下载PowerShell 2(或与Windows版兼容的版本):http://support.microsoft.com/kb/968929

2)安装并重新启动计算机。

3)创建一个新文件“example.ps1”并将其保存到您选择的目录中(例如c:\ examples \ example.ps1)。将此代码放在该文件中:

start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\1.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\2.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\3.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\4.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\5.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\6.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\7.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\8.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\9.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\10.php}
start-job {.\c:\xampp\php\php C:\xampp\htdocs\phpfiles\11.php}

4)点击“开始” - > “运行”并输入“powershell”(不带引号)。

5)PowerShell启动后,输入以下内容并按Enter:

Set-ExecutionPolicy RemoteSigned

然后按“y”设置更改。

6)现在输入(确保输入完整的文件路径):

c:\examples\example.ps1

7)要查看您的工作,只需输入:

get-job

要停止作业,请使用此命令:

stop-job JobName

2 个答案:

答案 0 :(得分:3)

浏览器将阻止同时连接。使用命令行,您也可以减少超时问题。加上输出是即时的,所以你可以一直回声。

答案 1 :(得分:2)

您是否必须通过浏览器运行脚本?使用php-cli直接从终端运行如此长时间运行的脚本是不是更容易?这样,您可以根据需要启动任意数量的进程。