Как часто инициализаторы работают в Rails? - PullRequest
7 голосов
/ 18 декабря 2011

Запускаются ли инициализаторы в приложении Rails каждый раз, когда кто-то посещает сайт?

Например, если мой сервер запущен в Техасе в 10:00, а кто-то посещает мой сайт из Нью-Йорка в 13:00 икто-то приезжает из Лос-Анджелеса в 22:00, запускаются ли инициализаторы в приложении rails, когда люди из Нью-Йорка и Лос-Анджелеса посещают, или инициализаторы запускаются только после запуска сервера в Техасе?

причина, по которой я спрашиваю, заключается в том, что я использовал выражение регистра в файле инициализатора для изменения настроек электронной почты в зависимости от времени дня, в которое приложение посещается.Конечно, это имеет смысл, только если инициализаторы запускаются, когда кто-то посещает сайт.Если бы они запускались только тогда, когда сервер был запущен, то это был бы только один случай ...

Если это не подходящее место для этого или если инициализаторы запускаются только после запуска сервера в Техасе (дляпример) тогда куда бы вы положили этот код?

    case

    when Time.now.hour == 0


    ActionMailer::Base.smtp_settings = {
      :user_name => "blahblah@example.com", 
      :password => "blahblah", 
      :address => "smtp.examplel.com",
      :port => 25,
      :tls => true
    }

    when Time.now.hour == 1

    ActionMailer::Base.smtp_settings = {
      :user_name => "blah@example.com", 
      :password => "eatshit", 
      :address => "smtp.example.com",
      :port => 25,
      :tls => true
    }

end

Ответы [ 2 ]

13 голосов
/ 18 декабря 2011

Очень простой и прямой ответ: только один раз, когда ваш сервер заработает.

Вы можете быть заинтересованы в этой статье Процесс инициализации Rails

6 голосов
/ 18 декабря 2011

Инициализаторы загружаются всякий раз, когда вы запускаете пассажир / дворняжку или что вы используете.

Чтобы установить эти параметры во время выполнения, взгляните на Rails: конфигурация времени выполнения ActionMailer?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...