Php Symfony2-启动Symfony2命令的进程
我的目标是在后台启动一些耗时的函数,以避免用户在呈现服务器响应之前等待 我有一个Symfony项目,我从一个控制器启动一个异步进程。此过程将启动一个Symfony命令,该命令将调用另一个控制器 问题是当我使用Php Symfony2-启动Symfony2命令的进程,php,symfony,asynchronous,process,symfony-process,Php,Symfony,Asynchronous,Process,Symfony Process,我的目标是在后台启动一些耗时的函数,以避免用户在呈现服务器响应之前等待 我有一个Symfony项目,我从一个控制器启动一个异步进程。此过程将启动一个Symfony命令,该命令将调用另一个控制器 问题是当我使用start() 然后这个过程什么也没发生,只是重定向和我后面的一些代码起作用了 然而,如果我这样做 $process->run(); 然后,该过程工作正常,但我需要等到该过程完成后才能渲染视图 知道我做错了什么吗?我们使用Gearman作业服务器进行异步处理- 有一些捆绑包简化了Ge
start()
然后这个过程什么也没发生,只是重定向和我后面的一些代码起作用了
然而,如果我这样做
$process->run();
然后,该过程工作正常,但我需要等到该过程完成后才能渲染视图
知道我做错了什么吗?我们使用Gearman作业服务器进行异步处理-
有一些捆绑包简化了Gearman在Symfony项目中的使用。我们使用mmoreram/GearmanBundle-。基本上,您可以创建worker,它可以是一个服务,并为耗时的任务调用它。我们将其用于需要很长时间的数据导入。我使用创建新流程对象的exec instaed找到了解决此问题的方法
exec('/usr/bin/php '.$this->get('kernel')->getRootDir().'/console scopusftpupload ' . escapeshellcmd($params) . ' > /dev/null 2>&1 &');
谢谢@dmnptr,这可能有用,但对于我需要的用法来说有点复杂。我发现了一个使用exec的解决方法,将发布答案。然而,这应该得到+1:)
exec('/usr/bin/php '.$this->get('kernel')->getRootDir().'/console scopusftpupload ' . escapeshellcmd($params) . ' > /dev/null 2>&1 &');