Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在symfony中运行后台进程_Php_Symfony - Fatal编程技术网

Php 如何在symfony中运行后台进程

Php 如何在symfony中运行后台进程,php,symfony,Php,Symfony,我有一个symfony commad需要几分钟才能完成。我想通过http请求来运行它。问题是服务器在发送响应后立即终止命令进程,他有一个超时 我尝试异步使用symfony进程,但仍然无法工作(我总是遇到超时问题) 我不想使用kernel.terminate事件,因为这不是最佳实践。以下是我的控制器中的代码: $commandProcess=new Process('php bin/console app:doSomeThing'); $comma

我有一个symfony commad需要几分钟才能完成。我想通过http请求来运行它。问题是服务器在发送响应后立即终止命令进程,他有一个超时

我尝试异步使用symfony进程,但仍然无法工作(我总是遇到超时问题)

我不想使用kernel.terminate事件,因为这不是最佳实践。以下是我的控制器中的代码:

            $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可执行文件。