2011-10-09 42 views
0

我想要做的是當用戶登錄從PHP服務器調用Java應用程序時。應用程序索引一些內容並對其進行處理並將其保存到數據庫中。但我真正想做的,就是打電話給它,而不要去想它做什麼,也絕不會等待答案。就像一個需求的cronjob。這可能嗎?使用參數調用Java應用程序,但從不等待答案

更新:

是shell_exec的解決方案嗎? $ res = shell_exec('java Myprogram');

+0

你在說什麼:用戶登錄到PHP服務器的網站?或者你的意思是用戶使用shell訪問(例如ssh)?應用程序在哪裏運行?在客戶端?在服務器端? –

+0

服務器端的PHP和Java。該網站在PHP上運行,Java執行處理(應用程序在用戶請求之前應該處理的數據)。你明白嗎? – Andrew

回答

1

如果你正在運行java或其他任何東西,這並不重要。你需要在後臺運行新的進程。你可以用exec來完成。在那裏有很多的例子,但你基本上需要做的:但你基本上需要做的:

exec("java Foo > /dev/null &") 
+0

我不認爲exec會做他想做的事情,除非它前面有一個fork(我沒有太多的Java或PHP知識)。 Exec(在C中)用另一個替換當前進程,並且不允許執行繼續。 – dcpomero

+0

@dcpomero'&'會完成這項工作。它的外殼相當於叉子。 [見這裏](http://hacktux.com/bash/ampersand)。 –

+0

啊,我沒有意識到這是exec如何處理後臺任務。我低估了你,但除非你編輯你的回覆,否則我無法改變它。 – dcpomero

2

也許,你應該做的是產生一個線程所需的處理,並從被調用的方法返回。

相關問題