【问题标题】:Symfony2 calling console command in controller from vendorSymfony2 在供应商的控制器中调用控制台命令
【发布时间】:2014-02-21 03:19:47
【问题描述】:

我想在我的控制器中使用此捆绑包中的控制台命令:http://knpbundles.com/dizda/CloudBackupBundle

开发人员建议使用 cronjobs,但我想使用该命令从我的控制器中备份我的数据库。

我该怎么做? 当我尝试将此命令注册为服务时,我收到此错误消息:

You have requested a non-existent service "backupcommandservice". 

感谢您的帮助!

【问题讨论】:

    标签: symfony service console command vendor


    【解决方案1】:

    命令并不是这样工作的。根据http://symfony.com/doc/current/cookbook/console/console_command.html#register-commands-in-the-service-container上的注释

    将命令注册为服务除了控制位置和依赖注入之外并没有太多作用。

    如果要调用命令:http://symfony.com/doc/current/components/console/introduction.html#calling-an-existing-command

    话虽如此,您不应该从控制器中调用命令,因为您基本上要求在返回响应之前等待该命令完成执行。您最好只向队列框(例如 beanstalk)发送请求并让工作人员执行工作。

    【讨论】:

    • 谢谢。到目前为止,我什至没有听说过豆茎。你知道一个很好的教程来解释它是如何工作的吗?
    • 所以有人已经为它实现了一个包,所以它很容易使用,你只需要设置你自己的队列框。这是捆绑包knpbundles.com/armetiz/LeezyPheanstalkBundle 的链接。至于教程,对不起,我现在不知道。
    猜你喜欢
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多