10
A
回答
29
如果你希望這個rake代碼在請求週期內運行,那麼你應該避免通過system
或任何exec系列(包括反引號)運行rake,因爲這將啓動一個新的ruby解釋器並每次重新加載rails環境叫做。
相反,你可以撥打耙直接命令如下: -
require 'rake'
class SomeModel <ActiveRecord::Base
def self.run_rake(task_name)
load File.join(RAILS_ROOT, 'lib', 'tasks', 'custom_task.rake')
Rake::Task[task_name].invoke
end
end
注:Rails的4+,您將使用Rails.root
,而不是RAILS_ROOT
。
,然後只用SomeModel.run_rake("ts:reindex")
這裏的關鍵部分是require rake
並確保您加載包含任務定義文件。從http://railsblogger.blogspot.com/2009/03/in-queue_15.html
-7
你試過`耙ts:reindex`?
2
獲得
大多數信息我有這個同樣的問題,不能得到公認的答案在我與軌道4項目控制器開始工作由於加載文件錯誤。 This post給了我一個工作的解決方案:
def restart_search
require 'rake'
spec = Gem::Specification.find_by_name 'thinking-sphinx'
load "#{spec.gem_dir}/lib/thinking_sphinx/tasks.rb"
Rake::Task["ts:stop"].execute
Rake::Task["ts:start"].execute
respond_to do |format|
format.js { head :ok }
end
end
2
require 'rake'
RailsApp::Application.load_tasks
class SomeModel <ActiveRecord::Base
def self.run_rake(task_name)
load File.join(Rails.root, 'lib', 'tasks', 'custom_task.rake')
Rake::Task[task_name].invoke
end
end
,然後只用SomeModel.run_rake("ts:reindex")
。
相關問題
- 1. 從應用程序rake任務運行gems rake任務
- 2. 運行rake任務裏面的Rails應用程序
- 3. Rails如何運行rake任務
- 4. 如何使我的Sinantra應用程序/環境下運行Rake任務?
- 5. 如何在由jruby war部署的tomcat提供的rails應用程序中運行rake rake任務?
- 6. 我如何從delayed_job運行rake任務
- 7. 如何在Rake任務中獲取Rails應用程序名稱?
- 8. 運行rake任務
- 9. Rails是否爲rake任務運行初始化程序?
- 10. Rails:一次運行多個rake任務?
- 11. 如何從rails應用程序運行'resque:work'rake任務?
- 12. 在Rails應用程序中的Rake任務中刪除表
- 13. Rackup Rails Rake任務中的另一個機架應用程序
- 14. Rails 3.1.3上的Rake任務 - 應用程序已經初始化
- 15. 無需使用Rake運行Rake任務
- 16. Ruby on Rails:如何運行env.rb的rake任務?
- 17. 如何在運行rake任務時跳過加載Rails初始化程序?
- 18. Rails應用Rake任務不知道如何構建其他Rake任務
- 19. 運行rake ts:從rake任務內的索引
- 20. 如何在rake任務中的Guardfile中運行所有內容?
- 21. Rails應用程序性能Rake任務vs應用程序方法
- 22. Ruby on Rails:如何在rake文件中運行Cucumber任務?
- 23. 運行rake任務,在Heroku
- 24. 運行所有rake任務?
- 25. 運行多個rake任務
- 26. 問題運行rake任務
- 27. 運行rake任務與時鐘進程
- 28. 我如何運行rails g model/rake db:在我的rails應用程序中遷移
- 29. 我可以運行而無需Rails應用程序運行rake命令Solr的服務器?
- 30. Rails運行rake:啓動服務器後的調度程序
這會減慢請求嗎?把它變成一個工人對嗎? – Strawberry 2013-04-15 08:13:34
這幾乎肯定會減慢請求速度。我不知道他是否應該這樣做,因爲我不知道他的申請。我只是在幫助解決特定的問題,他應該怎樣從Rails中調用Rake,而不是這樣做是否是一個好主意。 – 2013-04-15 13:56:34
這個工作適合你嗎?我已經設置好了,不會出現任何錯誤,但是我不會在任何地方看到任務的結果,也就是說這個任務似乎沒有被執行。 – kakubei 2013-12-06 15:35:46