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. Rails如何运行rake任务
- 3. 如何使我的Sinantra应用程序/环境下运行Rake任务?
- 4. 如何在由jruby war部署的tomcat提供的rails应用程序中运行rake rake任务?
- 5. 我如何从delayed_job运行rake任务
- 6. 运行rake任务
- 7. Rails是否为rake任务运行初始化程序?
- 8. 如何从rails应用程序运行'resque:work'rake任务?
- 9. Rackup Rails Rake任务中的另一个机架应用程序
- 10. Ruby on Rails:如何运行env.rb的rake任务?
- 11. 如何在rake任务中的Guardfile中运行所有内容?
- 12. Rails应用程序性能Rake任务vs应用程序方法
- 13. Ruby on Rails:如何在rake文件中运行Cucumber任务?
- 14. 运行所有rake任务?
- 15. 运行多个rake任务
- 16. 问题运行rake任务
- 17. 我如何运行rails g model/rake db:在我的rails应用程序中迁移
- 18. 在耙任务使用运行Rails应用程序实例
- 19. 如何编写Rake任务以将数据导入Rails应用程序?
- 20. 如何运行Rails应用程序
- 21. 如何监控由heroku调度程序运行的重复性rake任务?
- 22. 在我的应用程序中每月运行一次任务
- 23. 无法使用smarter_csv运行rake任务
- 24. Rails:运行类似迁移的rake任务
- 25. Rails如何为heroku上的rake任务创建后台任务?
- 26. Rails - 可能在通用Rake任务中运行迁移方法?
- 27. 确定Rails服务器是否从rake任务运行
- 28. 使用delayed_job rake任务的rails sphinx reindex
- 29. 何时在Rails中使用Rake任务
- 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