我想从LinkedIn导入数据并将它们保存在我的数据库中。我想要在后台运行。控制台中的呼叫控制器/操作推荐
所以我创建了一个控制台命令。但是我怎么能在控制台命令中调用控制器/操作,以便导入和保存事务可以在后台的控制台命令中运行?
我想从LinkedIn导入数据并将它们保存在我的数据库中。我想要在后台运行。控制台中的呼叫控制器/操作推荐
所以我创建了一个控制台命令。但是我怎么能在控制台命令中调用控制器/操作,以便导入和保存事务可以在后台的控制台命令中运行?
我不知道你的应用程序的结构是什么,但是如果你想允许一个命令来运行一个控制器所做的事情,那么典型的方法就是让一个服务中的预期代码控制器和命令都可以访问。
通过使用ContainerAwareCommand,您可以将命令实例访问权限授予服务容器,从而提供服务。控制器默认可以访问服务容器。
尽量避免陪审团将您的应用程序的某些部分安装在一起,因为它们被设计为单独使用。给他们访问相同的服务,但让他们分开。
感谢Flosculus和sensi帮助我很多。 为了达到我的目标,我首先在登录时添加一个事件监听器。 http://dev.dbl-a.com/symfony-2-0/how-to-add-a-symfony2-login-event-listener/ 然后,我添加一个过程,使其在后台工作 http://symfony.com/doc/master/components/process.html
Thx。但是我怎么能让控制台命令在后台运行?例如,当用户登录时,它开始运行控制台命令,但不会影响用户查看其他页面。 –
你想让它重复运行?通常这些任务被添加到cron作业中。我认为你正在接近这个错误的方式,如果它是通过控制器动作触发的,那么它不应该是一个命令。 – Flosculus
我通过每个cron作业完成此任务来确认Flosculus。您可以随时在需要的时候轻松调用您的命令行脚本。 您也可以使用登录后触发的事件,并调用您需要的必要功能。 – sensi