2011-04-13 59 views
2

如何在控制器中調用rake任務?如何調用控制器內的耙子任務?

我需要它延遲工作。

+1

這是一個[XY問題(http://www.perlmonks.org/index.pl?node_id=542341)。你爲什麼認爲需要從控制器運行rake任務? – 2011-04-13 23:50:02

+0

我想我需要在控制器中運行一個rake任務,將其作爲延遲工作來運行。 – 2011-04-13 23:54:22

+0

你用什麼來管理你的延遲工作? – 2011-04-13 23:54:42

回答

5
Rake::Task['task_name'].invoke(args) 

但是,我建議不要這樣;這是不好的做法。如果您需要這種類型的功能,最好使用Cron,或者您可以將delayed_job與特定於您的需求的自定義作業對象一起使用。我個人推薦後者,因爲它在移動服務器時造成更少的痛苦。但是delayed_job不是爲了運行rake任務而構建的,而是爲了排隊創建的工作項。

+0

您需要放入另一行「require'rake'」,否則您將獲得「未初始化的常量YourController :: Rake」。這可以方便地進行測試,但在生產中通常不使用。 – JosephK 2015-07-02 13:03:29

0

如果你需要紅寶石我內cron作業高度推薦whenever gem