PHP exec(),我可以解雇吗?

时间:2011-02-08 12:01:04

标签: java php exec fire-and-forget

我一直试图通过php表单执行java应用程序..所以提交按钮触发执行命令:

exec("java -jar c:\edu.uniroma3.jar c:\parameter2BPassed");

第一个路径确定jar文件的位置,第二个路径用作参数。

问题是脚本需要花费太长时间才能处理,我想绕过等待,无论如何都要这样做(就像火灾和遗忘)?该脚本将结果写入文件,如果文件存在,我可以每隔5分钟检查一次,但是等待该过程完成后不方便...

有什么建议吗?

提前谢谢

4 个答案:

答案 0 :(得分:1)

我认为这是同样的问题

Asynchronous shell exec in PHP

正如评论所述,上述内容仅适用于* nix环境,但我发现与Windows类似:

http://www.somacon.com/p395.php

尽管如此,考虑其他解决方案可能会更好,例如您可以将工作发送到的单独流程未连接到网络服务器。

Web服务器有时会回收进程并且后台进程并不总是孤立的,因为我已经阅读过了,所以除非它完全分开,否则你的外部进程可能被杀死。

答案 1 :(得分:0)

我想在此处添加解决方案:
$shell = new COM("WScript.Shell");
$shell->run($command, 0, false);

像魔术一样工作:) thx很多ircmaxell

答案 2 :(得分:0)

由于您在Windows上并且需要启动java程序,因此可以使用javaw.exe而不是java.exe。

Windows上的javaw,旨在启动一个jvm而不打开一个cmd窗口。 也许它可以帮助

答案 3 :(得分:-1)

在MSWindows上尝试:

exec("start java -jar c:\edu.uniroma3.jar c:\parameter2BPassed");