2011-08-31 90 views
1

我正在使用symfony框架在web payroll項目上工作。我們每月有27000名員工進行處理。當我們進行員工工資覈算時,我們不能依賴瀏覽器請求,因爲很長一段時間需要處理和服務器時間。作爲一項工作,我們喜歡在Linux服務器上從後臺執行php腳本。那麼即使瀏覽器關閉腳本也可以執行背景。運行很長時間執行php腳本甚至瀏覽器關閉

什麼是做這個任務的最佳方式,請幫助

更多信息

我們想從網絡界面給予薪酬捲過程中啓動按鈕時,該按鈕薪酬卷用戶點擊過程應該啓動,即使瀏覽器關閉它應該執行,直到從後臺完成。

問候

+0

[php執行後臺進程](http://stackoverflow.com/questions/45953/php-execute-a-background-process) –

+0

可能的重複它給大部分的答案給windows。我們正在研究LAMP堆棧 –

+0

呵呵?那裏沒有Windows的答案。他們全部用於Unix/Linux –

回答

2

要在研究背景運行執行以下步驟:

  1. 在shell腳本包裝你的PHP命令:

**

#!/usr/bin/bash 
# set up environment variables, PATH etc. here 
php /home/yourapp/yourscript.php 

* *

  1. 編寫一個網頁/ php腳本來請求開始。

  2. 在腳本中您需要的行:

    系統( '/家庭/ yourapp/yourscript.sh> scriptlog.txt &'

  3. 你可能需要一個額外的鏈接,瀏覽「scriptlog從網上的.txt」文件。

+0

Thansk詹姆斯我們正在計劃寫出數據庫而不是文本文件謝謝你的回答好主意+1 –

+0

@Roshan - 祝你好運。對不起格式是如此混亂,但我似乎無法漂亮起來! –

+0

沒有概率兄弟... ... –

1

有不同的方式來處理這個問題。

第一種方式是在你的PHP代碼中執行startinan shell命令(如果你喜歡,使用nohup)。這幾乎與重複問題中的第一個答案一樣。

第二種方式是使用PHP PCNTL功能。 使用PCNTL,您可以創建後臺運行的子進程。因此可以製作一個fork並返回給用戶:「付款流程正在運行 - 如果系統準備就緒,您將收到一封郵件」。

+0

感謝回答+1 –

相關問題