我有一个symfony commad,需要几分钟才能完成。我想通过http请求运行它。问题是服务器在发送响应后立即杀死命令进程,他有一个超时。
我试图异步使用symfony进程但仍然无法正常工作(我总是遇到超时问题)。
我不想使用kernel.terminate事件,因为它不是最佳实践。这是我的控制器中的代码:
$commandProcess=new Process('php bin/console app:doSomeThing');
$commandProcess->setWorkingDirectory('./../');
$commandProcess->start();
$commandProcess->setTimeout(50000000);
非常感谢任何回复。
答案 0 :(得分:0)
我不得不取消过程输出并添加'&'在命令之后 答案如下:
new Process('php bin/console app:dosomthing &');
$commandProcess=new Process('php bin/console app:dosomthing &');
$commandProcess->setWorkingDirectory('./../');
$commandProcess->disableOutput();
$commandProcess->setTimeout(1800);
$commandProcess->start();