Rails 中的初始化器运行频率是多少?

7
Rails应用程序中的初始化程序是否在每次有人访问网站时运行?
例如,如果我的服务器在德克萨斯州上午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
2个回答

13

一个非常简单而直接的答案是:只需要在你的服务器启动时一次。

您可能会对这篇文章感兴趣:Rails初始化过程


7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接