誰かがサイトにアクセスするたびにRailsアプリのイニシャライザが実行されますか?イニシャライザはどのくらいの頻度でRailsで動作しますか?
たとえば、私のサーバーがテキサスで午前10時に開始され、誰かがニューヨークから午後1時に自分のサイトにアクセスするとします。誰かがロサンゼルスの午後10時に訪問します。ニューヨークとロサンゼルスの人々が訪れたときにレールアプリケーションでイニシャライザを実行するのですか?あるいは、イニシャライザはテキサス州でサーバを起動した後にのみ起動しますか?
私が尋ねる理由は、アプリケーションが訪問された時刻に応じてメール設定を変更するためにイニシャライザファイルでcase式を使用していたためです。これは、誰かがサイトにアクセスしたときにイニシャライザが実行された場合にのみ意味をなさないでしょう。サーバーが起動されたときにのみ実行された場合は、1つのケースのみになります。
これは適切な場所ではない場合や、イニシャライザが一度動作する場合は、このコードをどこに置くのですか?
case
when Time.now.hour == 0
ActionMailer::Base.smtp_settings = {
:user_name => "[email protected]",
:password => "blahblah",
:address => "smtp.examplel.com",
:port => 25,
:tls => true
}
when Time.now.hour == 1
ActionMailer::Base.smtp_settings = {
:user_name => "[email protected]",
:password => "eatshit",
:address => "smtp.example.com",
:port => 25,
:tls => true
}
end