Я отправляю почту пользователям с помощью actionmailer через почтовый штемпель. Это мой код в контроллере:
@users = User.where(some condition)
@product = Product.find_by_name(some name).first
for user in @users
UserMailer.new_product_arrival(user, @product, home_url).deliver
end
и мой user_mailer.rb
def new_product_arrival(user,product,home_url)
@from = Settings.mailer_from_address
@recipients = user.login
@sent_on = Time.now
@user = user
@product = product
@content_type = "text/html"
@home_url = home_url
end
Проблема в том, что при наличии более 10 пользователей это занимает очень много времени из-за цикла for
. Мне нужно знать, сможем ли мы справиться с этим, используя многопоточность или фоновое задание. Я не хочу использовать фоновое задание, но может ли кто-нибудь сказать мне, как реализовать вышеперечисленное, используя многопоточность.
Я использую Ruby 1.8.7 и rails 3.0.7