Php 如何在symfony中运行后台进程
我有一个symfony commad需要几分钟才能完成。我想通过http请求来运行它。问题是服务器在发送响应后立即终止命令进程,他有一个超时 我尝试异步使用symfony进程,但仍然无法工作(我总是遇到超时问题) 我不想使用kernel.terminate事件,因为这不是最佳实践。以下是我的控制器中的代码:Php 如何在symfony中运行后台进程,php,symfony,Php,Symfony,我有一个symfony commad需要几分钟才能完成。我想通过http请求来运行它。问题是服务器在发送响应后立即终止命令进程,他有一个超时 我尝试异步使用symfony进程,但仍然无法工作(我总是遇到超时问题) 我不想使用kernel.terminate事件,因为这不是最佳实践。以下是我的控制器中的代码: $commandProcess=new Process('php bin/console app:doSomeThing'); $comma
$commandProcess=new Process('php bin/console app:doSomeThing');
$commandProcess->setWorkingDirectory('./../');
$commandProcess->start();
$commandProcess->setTimeout(50000000);
任何回复都将不胜感激。我不得不取消流程输出并在命令后添加“&” 答案如下:
new Process('php bin/console app:dosomthing &');
$commandProcess=new Process('php bin/console app:dosomthing &');
$commandProcess->setWorkingDirectory('./../');
$commandProcess->disableOutput();
$commandProcess->setTimeout(1800);
$commandProcess->start();
您是否碰巧使用了
php fpm
?您是否尝试过在启动流程之前设置超时?感谢您的回复@Med,我在启动进程之前尝试过,但仍然不起作用。“我不想使用kernel.terminate事件,因为这不是最佳做法”您能告诉我们确切的原因吗?为什么您认为这是一个超时问题?你能显示输出吗?您是否尝试使用/usr/local/bin/php/var/www/project/bin/console命令来代替php-bin/console命令
?可以使用PhpExecutableFinder
组件找到php可执行文件。