2

我想使用 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启动后,输入以下内容并按回车:

Set-ExecutionPolicy RemoteSigned

然后按“y”设置更改。

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

c:\examples\example.ps1

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

get-job

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

stop-job JobName
4

2 回答 2

3

浏览器将阻止同时连接。使用命令行,您也会遇到更少的超时问题。Plus 输出是即时的,因此您可以一直回显。

于 2012-08-30T13:45:45.610 回答
2

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

于 2012-08-30T13:44:08.343 回答