2012-08-30 40 views
2

我想使用XAMPP同時運行數十個長時間運行的PHP腳本。每個腳本運行時間超過2小時,並且不使用會話,cookie等。PHP Apache增加每個客戶端併發連接的最大數量

對於我的第一次測試,我嘗試在瀏覽器中打開這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 
+1

更適合在服務器故障 – bretterer

+1

爲什麼這必須在Apache內運行? –

+0

@Jack,我從我的電腦(Windows XP)本地運行。除了Apache之外,還有其他方法可以運行嗎?\ n @ bretterer,謝謝,我不知道http:// serverfault。com/ – Pamela

回答

3

瀏覽器將阻止同時連接。使用命令行,你也會減少超時的問題。 Plus輸出是即時的,所以你可以隨時迴應。

+0

謝謝,我沒有意識到這是我的瀏覽器(Firefox)阻止了同時連接,我也沒有意識到這可能是超時的原因,以及有關實時回顯的有用信息。你有沒有我可以用命令行運行多個腳本的例子? – Pamela

2

您是否必須通過瀏覽器運行腳本?使用php-cli直接從終端運行這樣的長時間運行的腳本不是更容易嗎?這樣,您可以根據需要啓動儘可能多的進程。

相關問題