У меня есть этот код в ApplicationController (Ruby On Rails 4.1):Is ActionMailer :: Base.default_url_options thread safe?
before_action :make_action_mailer_use_request_host_and_protocol
def make_action_mailer_use_request_host_and_protocol
ActionMailer::Base.default_url_options[:protocol] = request.protocol
ActionMailer::Base.default_url_options[:host] = request.host_with_port
ActionMailer::Base.asset_host = "#{request.protocol}#{request.host_with_port}"
end
ли это поточно-? Рассмотрим сценарий:
- Сервер начинает обрабатывать запрос для хоста foo.example.com. Он устанавливает хост для ActionMailer.
- Другой запрос приходит до того, как сервер завершит обработку первой, на этот раз для host bar.example.com. Сервер устанавливает хост ActionMailer на bar.example.com.
- Выполнение возвращается к первому запросу. Теперь сервер отправляет электронную почту. Каким будет узел в письме, foo.example.com или bar.example.com?
Кажется, я помню билет Rails для этого, но я не могу отследить его за короткое время, которое у меня есть. –
Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/10161975) – Aleph7
@ Aleph7 Ссылка не является ответом, это способ достижения цели. «К сожалению, это не поточно-безопасный» - это ответ. Это не ответ только для ссылок. Пожалуйста, обратите больше внимания при рассмотрении. –