Ах, я не просил об этом раньше, но это определенно возможно:
require "flying_sphinx/commands" if ENV["FLYING_SPHINX_IDENTIFIER"]
ThinkingSphinx::Commander.call(
:running,
ThinkingSphinx::Configuration.instance,
{}
)
Когда это вызывается локально, он проверяет демон через файл pid, но когда он вызывается приложение Heroku, использующее Flying Sphinx, обращается к API Flying Sphinx, чтобы получить текущее состояние. Следовательно, важно запускать вызов require
только для сред, размещенных на Heroku - нет смысла иметь локальные / тестовые среды, вызывающие Flying Sphinx API.
Настройка местоположения файлов / pid в средах Heroku / Flying Sphinx в основном не собираюсь ничего делать, потому что Flying Sphinx все равно перезаписывает их, чтобы соответствовать стандартизированному подходу на своих серверах. Исключения относятся к стоп-файлам / исключениям / et c, и соответствующие файлы загружаются в Flying Sphinx, чтобы демон мог быть настроен соответствующим образом.