我的 Rails 应用程序有一个 nginx + 乘客链。
现在每次服务器重新启动后,我需要在项目文件夹中的终端中写入
rake ts:start
但我怎样才能自动化呢?
这样在每个服务器重新启动后,没有我在终端中的命令就可以自动启动狮身人面像?
我使用 rails 3.2.8 和 ubuntu 12.04。
我无法想象我能尝试什么,请帮助我。
我该怎么做,给一些建议?
最佳答案
我做了什么来解决同样的问题:
在 config/application.rb
, 添加:
module Rails
def self.rake?
!!@rake
end
def self.rake=(value)
@rake = !!value
end
end
在
Rakefile
,添加这一行:Rails.rake = true
最后,在
config/initializers/start_thinking_sphinx.rb
放:unless Rails.rake?
begin
# Prope ts connection
ThinkingSphinx.search "test", :populate => true
rescue Mysql2::Error => err
puts ">>> ThinkingSphinx is unavailable. Trying to start .."
MyApp::Application.load_tasks
Rake::Task['ts:start'].invoke
end
end
(将上面的
MyApp
替换为您的应用名称)到目前为止似乎工作,但如果我遇到任何问题,我会回到这里。
显然,上述内容并没有关注服务器是否正常运行。您可能想单独执行此操作。或者另一种方法是使用 Upstart 管理服务。
关于ruby-on-rails - 在 Rails 服务器启动上开始思考 sphinx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17995130/