Rails应用程序中的初始化程序是否在每次有人访问网站时运行?
例如,如果我的服务器在德克萨斯州上午10点启动,并且有人在纽约下午1点访问了我的网站,还有人在洛杉矶晚上10点访问了我的网站,那么Rails应用程序中的初始化程序会在来自纽约和洛杉矶的人访问时运行吗?还是只有当我在德克萨斯州启动服务器时才运行初始化程序?
我之所以问这个问题,是因为我在初始化文件中使用了一个case表达式,根据应用程序被访问的时间更改电子邮件设置。当然,如果初始化程序仅在某人访问网站时运行,这才有意义。如果它们只在服务器启动时运行,则只有一种情况...
如果那不是合适的位置,或者如果初始化器只在在德克萨斯州启动服务器后运行(例如),那么您会将此代码放在哪里?
例如,如果我的服务器在德克萨斯州上午10点启动,并且有人在纽约下午1点访问了我的网站,还有人在洛杉矶晚上10点访问了我的网站,那么Rails应用程序中的初始化程序会在来自纽约和洛杉矶的人访问时运行吗?还是只有当我在德克萨斯州启动服务器时才运行初始化程序?
我之所以问这个问题,是因为我在初始化文件中使用了一个case表达式,根据应用程序被访问的时间更改电子邮件设置。当然,如果初始化程序仅在某人访问网站时运行,这才有意义。如果它们只在服务器启动时运行,则只有一种情况...
如果那不是合适的位置,或者如果初始化器只在在德克萨斯州启动服务器后运行(例如),那么您会将此代码放在哪里?
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