我想從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