I want to asynchronously call a Command from within a Controller in Symfony2.
So far i found the following solution:
$cmd = $this->get('kernel')->getRootDir().'/console '.(new MLCJobWorkerCommand)->getName().' '.$job->getId().' 2>&1 > /dev/null';
$process = new Process($cmd);
$process->start();
Is there a better way to accomplish this?
Edit:
I need the Process to run in background and the Controller to return right after it started the former. I tried:
$cmd = $this->get('kernel')->getRootDir().'/console '
.(new MLCJobWorkerCommand)->getName()
.' '.$job->getId().' 2>&1 > /dev/null & echo \$!';
$process = new Process($cmd);
$process->mustRun();
$params["processid"] = $process->getOutput();
but the Controller doesn't return a Response until the Process has finished.