使用Symfony2中的Process组件从控制器调用控制台命令

时间:2015-05-06 16:20:45

标签: symfony

我试图使用Symfony2中的Process组件从控制器调用控制台命令让它在后台运行,但它所做的只是挂起并以白屏结束。这是失败的一个例子:

$process = new Process('php app/console list');
$process->setWorkingDirectory($this->get('kernel')->getRootDir().'/../');
$process->run();
print $process->getOutput();

我尝试将$ process-> run()与$ process-> start()进行交换,但仍然无法正常工作。

1 个答案:

答案 0 :(得分:0)

Checkout AsyncServiceCallBundle,它允许您在后台执行应用程序服务的方法,而不必等到它们完成。只需使用它:

$this->get('krlove.async')->call('service_id', 'method', [$arg1, $arg2, $arg3]);

它使用this方法使这些调用异步。