ruby-on-rails - 在 Rails 服务器启动上开始思考 sphinx

标签 ruby-on-rails ubuntu thinking-sphinx

我的 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/

相关文章:

ruby-on-rails - 一个 fields_for 中的多个文本字段

ubuntu - 在 Ubuntu 中安装 ArcGIS Server 10

node.js - 无法在 Ubuntu Server 16.04 上升级 NPM

ubuntu - VM 使用 latin1 的 native 名称编码运行,这可能会导致 Elixir 出现故障,因为它期望使用 utf8

ruby-on-rails-3 - ThinkingSphinx 错误 : such filter attribute

ruby-on-rails-3 - 康康思维狮身人面像 current_ability 问题

sphinx - 思考 Sphinx 索引性能

ruby-on-rails - 数据库 :migrate (PostgreSQL) fails on Rails deployment with Capistrano

ruby-on-rails - 如何更改表单上的验证消息

mysql - 查询模型的不同实例 + 另一个字段