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