2011-12-18 71 views
7

每次有人访问该网站时,Rails应用程序中的初始化程序是否都运行?初始化器在Rails中运行的频率如何?

例如,如果我的服务器在上午10点在德克萨斯州启动,并且有人在下午1点从纽约访问我的站点。并且有人在晚上10点从洛杉矶到访,在纽约和洛杉矶的人们访问时,在轨道应用程序中运行初始化程序,还是在我启动德克萨斯州的服务器后运行初始化程序?

我问的原因是因为我在初始化文件中使用了一个case表达式来根据应用访问的时间更改电子邮件设置。如果初始化程序在有人访问该网站时运行,这只会有意义。如果它们只在服务器启动时才运行,那么它只会是一种情况...

如果这不是正确的地方,或者初始化程序只在德克萨斯州启动服务器时运行(例如)那么你会把这个代码放在哪里?

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 

回答